Class OwlAuthenticationFinish

java.lang.Object
org.bouncycastle.crypto.agreement.owl.OwlAuthenticationFinish

public class OwlAuthenticationFinish extends Object
The payload sent by the client during the third pass of an Owl exchange.

Each OwlClient creates and sends an instance of this payload to the OwlServer after validating the previous payload OwlAuthenticationServerResponse. The payload to send should be created via OwlClient.authenticationFinish(OwlAuthenticationServerResponse).

Each OwlClient must also validate the payload received from the OwlServer, which is done by the same function OwlClient.authenticationFinish(OwlAuthenticationServerResponse).

  • Constructor Details

    • OwlAuthenticationFinish

      public OwlAuthenticationFinish(String clientId, ECPoint alpha, ECSchnorrZKP knowledgeProofForAlpha, BigInteger r)
      Constructor of OwlAuthenticationFinish
      Parameters:
      clientId - Client's identity
      alpha - The public key alpha sent by the client in the third pass
      knowledgeProofForAlpha - The zero-knowledge proof for the knowledge of the private key for alpha
      r - The response r for proving the knowledge of t=H(usrname||password) mod n.
  • Method Details

    • getClientId

      public String getClientId()
      Get the client's identity (also known as username)
      Returns:
      The client's identity
    • getAlpha

      public ECPoint getAlpha()
      Get the public key alpha = (x2 x pi) * [X1 + X3 + X4]. sent by the client in the third pass
      Returns:
      The public key alpha
    • getR

      public BigInteger getR()
      Get the response r as part of the zero-knowledge proof for proving the knowledge of t, r = x1 - t.h mod n where x1 is the ephemeral private key for the public key X1 sent in the first pass of Owl
      Returns:
      The response r sent by the client in the third pass
    • getKnowledgeProofForAlpha

      public ECSchnorrZKP getKnowledgeProofForAlpha()
      Get the Schnorr zero-knowledge proof for the knowledge of the private key (x2 x pi) for the public key alpha
      Returns:
      ECSchnorrZKP