Example usage for org.bouncycastle.crypto.agreement.srp SRP6VerifierGenerator generateVerifier

List of usage examples for org.bouncycastle.crypto.agreement.srp SRP6VerifierGenerator generateVerifier

Introduction

In this page you can find the example usage for org.bouncycastle.crypto.agreement.srp SRP6VerifierGenerator generateVerifier.

Prototype

public BigInteger generateVerifier(byte[] salt, byte[] identity, byte[] password) 

Source Link

Document

Creates a new SRP verifier

Usage

From source file:com.aelitis.azureus.core.pairing.impl.PairingManagerTunnelHandler.java

License:Open Source License

public void setSRPPassword(char[] password) {
    if (password == null || password.length == 0) {

        SRP_SALT = null;/*from w ww .  ja v  a2  s  .  c  o m*/
        SRP_VERIFIER = null;

        CryptoManagerFactory.getSingleton().setSRPParameters(null, null);

    } else {

        start();

        try {
            byte[] I = DEFAULT_IDENTITY.getBytes("UTF-8");
            byte[] P = new String(password).getBytes("UTF-8");

            byte[] salt = new byte[16];

            RandomUtils.nextSecureBytes(salt);

            SRP6VerifierGenerator gen = new SRP6VerifierGenerator();

            gen.init(N_3072, G_3072, new SHA256Digest());

            BigInteger verifier = gen.generateVerifier(salt, I, P);

            CryptoManagerFactory.getSingleton().setSRPParameters(salt, verifier);

            SRP_SALT = salt;
            SRP_VERIFIER = verifier;

        } catch (Throwable e) {

            Debug.out(e);
        }
    }

    updateActive();
}

From source file:org.forgerock.openicf.framework.remote.SecurityUtil.java

License:CDDL license

/**
 * Generate Secure Remote Password (SRP)
 *
 * @param username user name (aka "identity")
 * @param password password/*from w  w w . java  2  s .  c o  m*/
 * @param random   the source of randomness for this generator
 * @param params   group parameters (prime, generator)
 * @return generated verifier and random
 */
public static Pair<String, byte[]> generateVerifier(String username, String password, SecureRandom random,
        SRPGroupParameter params) {
    byte[] I = username.getBytes();
    byte[] P = password.getBytes();
    byte[] s = new byte[16];
    random.nextBytes(s);

    SRP6VerifierGenerator gen = new SRP6VerifierGenerator();
    gen.init(params.N, params.g, new SHA256Digest());
    BigInteger v = gen.generateVerifier(s, I, P);
    return Pair.of(v.toString(16), s);
}