public class SRP6VerifierGenerator
extends java.lang.Object
SRP6Routines.generateRandomSalt(int) may be used to create a random
salt 's' of a specified byte size.
| Modifier and Type | Field and Description |
|---|---|
protected SRP6Routines |
srp6Routines |
| Constructor and Description |
|---|
SRP6VerifierGenerator(SRP6CryptoParams config)
Creates a new generator of password verifier 'v' values.
|
SRP6VerifierGenerator(SRP6CryptoParams config,
SRP6Routines srp6Routines)
Creates a new generator of password verifier 'v' values.
|
| Modifier and Type | Method and Description |
|---|---|
byte[] |
generateRandomSalt()
Generates a random 16-byte salt 's'.
|
byte[] |
generateRandomSalt(int numBytes)
Generates a random salt 's'.
|
byte[] |
generateRandomSalt(int numBytes,
java.security.SecureRandom random)
Generates a random salt 's'.
|
java.math.BigInteger |
generateVerifier(java.math.BigInteger salt,
java.lang.String password)
Generates a new verifier 'v' from the specified parameters with the
user identifier 'I' omitted.
|
java.math.BigInteger |
generateVerifier(java.math.BigInteger salt,
java.lang.String userID,
java.lang.String password)
Generates a new verifier 'v' from the specified parameters.
|
java.math.BigInteger |
generateVerifier(byte[] salt,
byte[] password)
Generates a new verifier 'v' from the specified parameters with the
user identifier 'I' omitted.
|
java.math.BigInteger |
generateVerifier(byte[] salt,
byte[] userID,
byte[] password)
Generates a new verifier 'v' from the specified parameters.
|
XRoutine |
getXRoutine()
Gets the custom routine for the password key 'x' computation.
|
void |
setXRoutine(XRoutine routine)
Sets a custom routine for the password key 'x' computation.
|
protected final SRP6Routines srp6Routines
public SRP6VerifierGenerator(SRP6CryptoParams config)
config - The SRP-6a crypto parameters configuration. Must not
be null.public SRP6VerifierGenerator(SRP6CryptoParams config, SRP6Routines srp6Routines)
config - The SRP-6a crypto parameters configuration. Must not
be null.srp6Routines - The cryptographic routines.public byte[] generateRandomSalt(int numBytes)
This method is a shortcut to
SRP6Routines.generateRandomSalt(int).
numBytes - The number of bytes the salt 's' must have.public byte[] generateRandomSalt(int numBytes,
java.security.SecureRandom random)
This method is a shortcut to
SRP6Routines.generateRandomSalt(int).
numBytes - The number of bytes the salt 's' must have.random - A secure random number generator.public byte[] generateRandomSalt()
This method is a shortcut to
SRP6Routines.generateRandomSalt(int).
public void setXRoutine(XRoutine routine)
routine - The password key 'x' routine or null to use
the default one
instead.public XRoutine getXRoutine()
null if the default
default one is used.public java.math.BigInteger generateVerifier(byte[] salt,
byte[] userID,
byte[] password)
The verifier is computed as v = g^x (mod N). If a custom
'x' computation routine is set it will be used
instead of the default one.
Tip: To convert a string to a byte array you can use
String.getBytes() or
String.getBytes(java.nio.charset.Charset). To convert a big
integer to a byte array you can use BigInteger.toByteArray().
salt - The salt 's'. Must not be null.userID - The user identity 'I'. May be null if the
default 'x' routine is used or the custom one
ignores it.password - The user password 'P'. Must not be null.public java.math.BigInteger generateVerifier(java.math.BigInteger salt,
java.lang.String userID,
java.lang.String password)
The verifier is computed as v = g^x (mod N). If a custom
'x' computation routine is set it will be used
instead of the default one.
salt - The salt 's'. Must not be null.userID - The user identity 'I', as an UTF-8 encoded string.
May be null if the default 'x' routine is
used or the custom one ignores it.password - The user password 'P', as an UTF-8 encoded string.
Must not be null.public java.math.BigInteger generateVerifier(byte[] salt,
byte[] password)
The verifier is computed as v = g^x (mod N). If a custom
'x' computation routine is set it must omit the
user identity 'I' as well.
Tip: To convert a string to a byte array you can use
String.getBytes() or
String.getBytes(java.nio.charset.Charset). To convert a big
integer to a byte array you can use BigInteger.toByteArray().
salt - The salt 's'. Must not be null.password - The user password 'P'. Must not be null.public java.math.BigInteger generateVerifier(java.math.BigInteger salt,
java.lang.String password)
The verifier is computed as v = g^x (mod N). If a custom
'x' computation routine is set it must omit the
user identity 'I' as well.
salt - The salt 's'. Must not be null.password - The user password 'P', as an UTF-8 encoded string.
Must not be null.