Class SRP6ClientSharedSecret

  • All Implemented Interfaces:
    SRP6IntegerVariable

    public final class SRP6ClientSharedSecret
    extends AbstractSRP6IntegerVariable
    SRP-6 Client Shared Secret (S).

    This variable is computed as:

     S = (B - kg^x) ^ (a + ux)
     
    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

      • SRP6ClientSharedSecret

        public SRP6ClientSharedSecret​(SRP6IntegerVariable prime,
                                      SRP6IntegerVariable generator,
                                      SRP6IntegerVariable multiplier,
                                      SRP6IntegerVariable serverPublicKey,
                                      SRP6IntegerVariable privateKey,
                                      SRP6IntegerVariable scramblingParameter,
                                      SRP6IntegerVariable clientEphPrvtKey)
        Constructs a new SRP-6 Server Shared Secret from prime, generator, multiplier, server public key, private key, random scrambling parameter and client ephemeral private key.
        Parameters:
        prime - SRP-6 Integer Variable: prime (N)
        generator - SRP-6 Integer Variable: generator (g)
        multiplier - SRP-6 Integer Variable: multiplier (k)
        serverPublicKey - SRP-6 Integer Variable: server public key (B)
        privateKey - SRP-6 Integer Variable: private key (x)
        scramblingParameter - SRP-6 Integer Variable: random scrambling parameter (u)
        clientEphPrvtKey - SRP-6 Integer Variable: client ephemeral private key (a)
    • 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 B == 0 (mod N) or u == 0