OwlAuthenticationServerResponse (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.crypto.agreement.owl

## Class OwlAuthenticationServerResponse

- java.lang.Object
- - org.bouncycastle.crypto.agreement.owl.OwlAuthenticationServerResponse

-     public class OwlAuthenticationServerResponse
      extends java.lang.Object

  The payload sent by the server during the second pass of an Owl exchange.

  Each `OwlServer` creates and sends an instance of this payload to the `OwlClient`. The payload to send should be created via `OwlServer.authenticationServerResponse(OwlAuthenticationInitiate, OwlFinishRegistration)`.

  Each `OwlServer` must also validate the payload received from the `OwlClient` which comes in the form of `OwlAuthenticationInitiate`. The `OwlServer` must retrieve the `OwlFinishRegistration` from wherever the server securely stored the initial login information. The received payload should be validated via the same function (in the same call).

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `OwlAuthenticationServerResponse(java.lang.String serverId, ECPoint gx3, ECPoint gx4, ECSchnorrZKP knowledgeProofForX3, ECSchnorrZKP knowledgeProofForX4, ECPoint beta, ECSchnorrZKP knowledgeProofForBeta)` Constructor for OwlAuthenticationServerResponse

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ECPoint` | `getBeta()` Get the public key beta = (x4 x pi) * [X1 + X2 + X3]
    `ECPoint` | `getGx3()` Get the public key X3 = x3 * [G]
    `ECPoint` | `getGx4()` Get the public key X4 = x4 * [G]
    `ECSchnorrZKP` | `getKnowledgeProofForBeta()` Get the zero-knowledge proof for the knowledge of (x4 x pi) for the public key beta = (x4 x pi) * [X1 + X2 + X3]
    `ECSchnorrZKP` | `getKnowledgeProofForX3()` Get the zero-knowledge proof for the knowledge of x3 for X3 = x3 * [G]
    `ECSchnorrZKP` | `getKnowledgeProofForX4()` Get the zero-knowledge proof for the knowledge of x4 for X4 = x4 * [G]
    `java.lang.String` | `getServerId()` Get the server's identity

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### OwlAuthenticationServerResponse

          public OwlAuthenticationServerResponse(java.lang.String serverId,
                                                 ECPoint gx3,
                                                 ECPoint gx4,
                                                 ECSchnorrZKP knowledgeProofForX3,
                                                 ECSchnorrZKP knowledgeProofForX4,
                                                 ECPoint beta,
                                                 ECSchnorrZKP knowledgeProofForBeta)

      Constructor for OwlAuthenticationServerResponse
      Parameters:
        `serverId` - The server's identity
        `gx3` - The public key X3 = x3 * [G]
        `gx4` - The public key X4 = x4 * [G]
        `knowledgeProofForX3` - The zero-knowledge proof for the knowledge of x3
        `knowledgeProofForX4` - The zero-knowledge proof for the knowledge of x4
        `beta` - The public key beta = (x4 x pi) * [X1 + X2 + X3]
        `knowledgeProofForBeta` - The zero-knowledge proof for the knowledge of (x4 x pi) for beta

  - ### Method Detail

    - #### getServerId

          public java.lang.String getServerId()

      Get the server's identity
      Returns:
        The server's identity

    - #### getGx3

          public ECPoint getGx3()

      Get the public key X3 = x3 * [G]
      Returns:
        The public key X3

    - #### getGx4

          public ECPoint getGx4()

      Get the public key X4 = x4 * [G]
      Returns:
        The public key X4

    - #### getKnowledgeProofForX3

          public ECSchnorrZKP getKnowledgeProofForX3()

      Get the zero-knowledge proof for the knowledge of x3 for X3 = x3 * [G]
      Returns:
        `ECSchnorrZKP`

    - #### getKnowledgeProofForX4

          public ECSchnorrZKP getKnowledgeProofForX4()

      Get the zero-knowledge proof for the knowledge of x4 for X4 = x4 * [G]
      Returns:
        `ECSchnorrZKP`

    - #### getBeta

          public ECPoint getBeta()

      Get the public key beta = (x4 x pi) * [X1 + X2 + X3]
      Returns:
        The public key beta

    - #### getKnowledgeProofForBeta

          public ECSchnorrZKP getKnowledgeProofForBeta()

      Get the zero-knowledge proof for the knowledge of (x4 x pi) for the public key beta = (x4 x pi) * [X1 + X2 + X3]
      Returns:
        `ECSchnorrZKP`