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

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

Introduction

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

Prototype

public void init(BigInteger N, BigInteger g, Digest digest) 

Source Link

Document

Initialises generator to create new verifiers

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  w  w.jav a2  s  . 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//  w w w. j a  v a  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);
}