List of usage examples for org.bouncycastle.crypto.agreement.srp SRP6Client generateClientCredentials
public BigInteger generateClientCredentials(byte[] salt, byte[] identity, byte[] password)
From source file:org.forgerock.openicf.framework.remote.SecurityUtil.java
License:CDDL license
/** * Verifies the client and server secret. * * @param username user name (aka "identity") * @param password password/*www .jav a 2 s.c om*/ * @param verification * @param random the source of randomness for this generator * @param params group parameters (prime, generator) * @return true if client and server secret is equals * @throws CryptoException If client or server's credentials are invalid */ public static boolean checkMutualVerification(String username, String password, Pair<String, byte[]> verification, SecureRandom random, SRPGroupParameter params) throws CryptoException { byte[] I = username.getBytes(); byte[] P = password.getBytes(); byte[] s = verification.second; BigInteger v = new BigInteger(verification.first, 16); SRP6Client client = new SRP6Client(); client.init(params.N, params.g, new SHA256Digest(), random); SRP6Server server = new SRP6Server(); server.init(params.N, params.g, v, new SHA256Digest(), random); BigInteger A = client.generateClientCredentials(s, I, P); BigInteger B = server.generateServerCredentials(); BigInteger clientS = client.calculateSecret(B); BigInteger serverS = server.calculateSecret(A); return clientS.equals(serverS); }