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

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

Introduction

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

Prototype

public SRP6VerifierGenerator() 

Source Link

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   www. java2s.com*/
        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  ww w.  ja va  2s.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);
}