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

org.bouncycastle.crypto.agreement.owl

## Class OwlAuthenticationInitiate

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

-     public class OwlAuthenticationInitiate
      extends java.lang.Object

  The payload sent by the client in the first pass of an Owl exchange.

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

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `OwlAuthenticationInitiate(java.lang.String clientId, ECPoint gx1, ECPoint gx2, ECSchnorrZKP knowledgeProofForX1, ECSchnorrZKP knowledgeProofForX2)` Constructor of OwlAuthenticationInitiate

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getClientId()` Get the client's identity (or username)
    `ECPoint` | `getGx1()` Get the client's public key X1 = x1 * [G] in the first pass of Owl
    `ECPoint` | `getGx2()` Get the client's public key X2 = x2 * [G] in the first pass of Owl
    `ECSchnorrZKP` | `getKnowledgeProofForX1()` Get the zero-knowledge proof for the knowledge of x1
    `ECSchnorrZKP` | `getKnowledgeProofForX2()` Get the zero-knowledge proof for the knowledge of x2

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

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

- - ### Constructor Detail

    - #### OwlAuthenticationInitiate

          public OwlAuthenticationInitiate(java.lang.String clientId,
                                           ECPoint gx1,
                                           ECPoint gx2,
                                           ECSchnorrZKP knowledgeProofForX1,
                                           ECSchnorrZKP knowledgeProofForX2)

      Constructor of OwlAuthenticationInitiate
      Parameters:
        `clientId` - the client's identity (or username)
        `gx1` - The public key X1 = x1 * [G]
        `gx2` - The public key X2 = x2 * [G]
        `knowledgeProofForX1` - The zero-knowledge proof for proving the knowledge of x1
        `knowledgeProofForX2` - The zero-knowledge proof for proving the knowledge of x2

  - ### Method Detail

    - #### getClientId

          public java.lang.String getClientId()

      Get the client's identity (or username)
      Returns:
        The client's identity

    - #### getGx1

          public ECPoint getGx1()

      Get the client's public key X1 = x1 * [G] in the first pass of Owl
      Returns:
        The client's public key X1

    - #### getGx2

          public ECPoint getGx2()

      Get the client's public key X2 = x2 * [G] in the first pass of Owl
      Returns:
        The client's public key X2

    - #### getKnowledgeProofForX1

          public ECSchnorrZKP getKnowledgeProofForX1()

      Get the zero-knowledge proof for the knowledge of x1
      Returns:
        `ECSchnorrZKP`

    - #### getKnowledgeProofForX2

          public ECSchnorrZKP getKnowledgeProofForX2()

      Get the zero-knowledge proof for the knowledge of x2
      Returns:
        `ECSchnorrZKP`