Class SRP6VerifierGenerator
public class SRP6VerifierGenerator
extends java.lang.Object
SRP6Routines.generateRandomSalt(int)
may be used to create a random
salt 's' of a specified byte size.
-
Field Summary
Fields Modifier and Type Field Description protected SRP6Routines
srp6Routines
-
Constructor Summary
Constructors Constructor 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. -
Method Summary
Modifier and Type Method 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(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.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.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.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
srp6Routines
-
-
Constructor Details
-
SRP6VerifierGenerator
Creates a new generator of password verifier 'v' values.- Parameters:
config
- The SRP-6a crypto parameters configuration. Must not benull
.
-
SRP6VerifierGenerator
Creates a new generator of password verifier 'v' values.- Parameters:
config
- The SRP-6a crypto parameters configuration. Must not benull
.srp6Routines
- The cryptographic routines.
-
-
Method Details
-
generateRandomSalt
public byte[] generateRandomSalt(int numBytes)Generates a random salt 's'.This method is a shortcut to
SRP6Routines.generateRandomSalt(int)
.- Parameters:
numBytes
- The number of bytes the salt 's' must have.- Returns:
- The salt 's' as a byte array.
-
generateRandomSalt
public byte[] generateRandomSalt(int numBytes, java.security.SecureRandom random)Generates a random salt 's'.This method is a shortcut to
SRP6Routines.generateRandomSalt(int)
.- Parameters:
numBytes
- The number of bytes the salt 's' must have.random
- A secure random number generator.- Returns:
- The salt 's' as a byte array.
-
generateRandomSalt
public byte[] generateRandomSalt()Generates a random 16-byte salt 's'.This method is a shortcut to
SRP6Routines.generateRandomSalt(int)
.- Returns:
- The salt 's' as a byte array.
-
setXRoutine
Sets a custom routine for the password key 'x' computation.- Parameters:
routine
- The password key 'x' routine ornull
to use thedefault one
instead.
-
getXRoutine
Gets the custom routine for the password key 'x' computation.- Returns:
- The routine instance or
null
if the defaultdefault one
is used.
-
generateVerifier
public java.math.BigInteger generateVerifier(byte[] salt, byte[] userID, byte[] password)Generates a new verifier 'v' from the specified parameters.The verifier is computed as v = g^x (mod N). If a custom
'x' computation routine
is set it will be used instead of thedefault one
.Tip: To convert a string to a byte array you can use
String.getBytes()
orString.getBytes(java.nio.charset.Charset)
. To convert a big integer to a byte array you can useBigInteger.toByteArray()
.- Parameters:
salt
- The salt 's'. Must not benull
.userID
- The user identity 'I'. May benull
if the default 'x' routine is used or the custom one ignores it.password
- The user password 'P'. Must not benull
.- Returns:
- The resulting verifier 'v'.
-
generateVerifier
public 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.The verifier is computed as v = g^x (mod N). If a custom
'x' computation routine
is set it will be used instead of thedefault one
.- Parameters:
salt
- The salt 's'. Must not benull
.userID
- The user identity 'I', as an UTF-8 encoded string. May benull
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 benull
.- Returns:
- The resulting verifier 'v'.
-
generateVerifier
public java.math.BigInteger generateVerifier(byte[] salt, byte[] password)Generates a new verifier 'v' from the specified parameters with the user identifier 'I' omitted.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()
orString.getBytes(java.nio.charset.Charset)
. To convert a big integer to a byte array you can useBigInteger.toByteArray()
.- Parameters:
salt
- The salt 's'. Must not benull
.password
- The user password 'P'. Must not benull
.- Returns:
- The resulting verifier 'v'.
-
generateVerifier
public 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.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.- Parameters:
salt
- The salt 's'. Must not benull
.password
- The user password 'P', as an UTF-8 encoded string. Must not benull
.- Returns:
- The resulting verifier 'v'.
-