Class SRP6RandomEphemeral

  • All Implemented Interfaces:
    SRP6IntegerVariable

    public final class SRP6RandomEphemeral
    extends AbstractSRP6IntegerVariable
    SRP-6 Random Ephemeral (a, b).

    Use this class to generate random private ephemeral values a and b (see package docs).

    This class generates a random value r of the form:

     1 < r < N
     
    where N is the SRP-6 "prime" variable.

    The bit-length of this variable will be at least 256 bits, as recommended in: RFC 5054 | 3. Security Considerations.

    This class is not thread-safe.

    • Constructor Detail

      • SRP6RandomEphemeral

        public SRP6RandomEphemeral​(SecureRandom rng,
                                   SRP6IntegerVariable prime)
        Creates a new SRP-6 Random Ephemeral with default bit-length (256 bits).
        Parameters:
        rng - source of randomness
        prime - SRP-6 Integer Variable: prime (N)
    • Method Detail

      • bytes

        public Bytes bytes​(ByteOrder preferredOrder)
        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 the set bit length is greater than the bit length of prime. More formally if: Math.max(desiredBitLength, 256) > bitlength(prime)