Class SRP6ServerSharedSecret

  • All Implemented Interfaces:
    SRP6IntegerVariable

    public final class SRP6ServerSharedSecret
    extends AbstractSRP6IntegerVariable
    SRP-6 Server Shared Secret (S).

    This variable is computed as:

     S = (Av^u) ^ b
     
    where ^ is modular exponentiation modulo N.

    RFC 5054 also calls this value "premaster secret".

    Refer to the package docs for more info on notation used.

    • Constructor Detail

      • SRP6ServerSharedSecret

        public SRP6ServerSharedSecret​(SRP6IntegerVariable prime,
                                      SRP6IntegerVariable clientPublicKey,
                                      SRP6IntegerVariable verifier,
                                      SRP6IntegerVariable scramblingParameter,
                                      SRP6IntegerVariable serverEphPrvtKey)
        Constructs a new SRP-6 Server Shared Secret from prime, client public key, verifier, random scrambling parameter and server ephemeral private key.
        Parameters:
        prime - SRP-6 Integer Variable: prime (N)
        clientPublicKey - SRP-6 Integer Variable: client public key (A)
        verifier - SRP-6 Integer Variable: verifier (v)
        scramblingParameter - SRP-6 Integer Variable: random scrambling parameter (u)
        serverEphPrvtKey - SRP-6 Integer Variable: server ephemeral private key (b)
    • Method Detail

      • bytes

        public Bytes bytes​(ByteOrder preferredOrder)
                    throws IllegalStateException
        Returns this SRP-6 Integer Variable as a byte sequence in the preferred byte order.

        The representation returned must be minimal. That is, all leading (or trailing, depending on the preferredOrder) zero bytes have to be trimmed.

        Number zero is hence defined as an empty byte sequence.

        Parameters:
        preferredOrder - the preferred byte order of the byte sequence that represents this SRP-6 Integer Variable
        Returns:
        the byte sequence that represents this SRP-6 Integer Variable in the preferred byte order
        Throws:
        IllegalStateException - if A == 0 (mod N)