Example usage for org.bouncycastle.crypto AsymmetricCipherKeyPairGenerator generateKeyPair

List of usage examples for org.bouncycastle.crypto AsymmetricCipherKeyPairGenerator generateKeyPair

Introduction

In this page you can find the example usage for org.bouncycastle.crypto AsymmetricCipherKeyPairGenerator generateKeyPair.

Prototype

public AsymmetricCipherKeyPair generateKeyPair();

Source Link

Document

return an AsymmetricCipherKeyPair containing the generated keys.

Usage

From source file:beta01.SimpleRootCA.java

/**
 * Create a random 2048 bit RSA key pair
 *//*ww w  .ja  va2s  .  c om*/
public static AsymmetricCipherKeyPair generateRSAKeyPair() throws Exception {
    AsymmetricCipherKeyPairGenerator kpGen = new RSAKeyPairGenerator();

    kpGen.init(new RSAKeyGenerationParameters(BigInteger.valueOf(0x11), new SecureRandom(), 2048, 12));

    return kpGen.generateKeyPair();
}

From source file:eu.betaas.taas.securitymanager.common.ec.ECKeyPairGen.java

License:Apache License

/**
 * Generate a random EC (Elliptic Curve) random 192-bit key pair (equivalent 
 * to 1536-bit RSA) based on NIST and SECG, using Bc (Bouncy Castle) classes
 * @return a pair of EC keys (AsymmetricCipherKeyPair type)
 *//*w w  w .j  a v a2s  . c  om*/
public static AsymmetricCipherKeyPair generateECKeyPair192() {
    AsymmetricCipherKeyPairGenerator kpGen = new ECKeyPairGenerator();

    // First, define an EC curve
    // ECCurve.Fp(p, a, b); p = prime; a,b = constants defined in equation E: y^2=x^3+ax+b (mod p)
    ECCurve curve = new ECCurve.Fp(new BigInteger(ECParams.P_192_R1, 16), // p 
            new BigInteger(ECParams.A_192_R1, 16), // a
            new BigInteger(ECParams.B_192_R1, 16)); // b

    byte[] seed = Hex.decode(ECParams.SEED_192_R1);

    // finally use the seed in the ECKeyGenerationParameters along with the others
    // ECKeyGenerationParameters(ECDomainParameters(ECCurve, G, n, h),random)
    kpGen.init(new ECKeyGenerationParameters(
            new ECDomainParameters(curve, curve.decodePoint(Hex.decode(ECParams.G_192_R1_NCOMP)), // G       
                    new BigInteger(ECParams.N_192_R1, 16), // n
                    new BigInteger(ECParams.H_192_R1, 16), // h 
                    seed), // seed
            new SecureRandom()));

    return kpGen.generateKeyPair();
}

From source file:eu.betaas.taas.securitymanager.common.ec.ECKeyPairGen.java

License:Apache License

/**
 * Generate a random EC (Elliptic Curve) random 224-bit key pair (equivalent 
 * to 2048-bit RSA) based on NIST and SECG, using Bc (Bouncy Castle) classes
 * @return a pair of EC keys (AsymmetricCipherKeyPair type)
 *///  w  w w .j a va  2  s  .  c o m
public static AsymmetricCipherKeyPair generateECKeyPair224() {
    AsymmetricCipherKeyPairGenerator kpGen = new ECKeyPairGenerator();

    // ECCurve.Fp(p, a, b); p = prime; a,b = constants defined in equation E: y^2=x^3+ax+b (mod p)
    ECCurve curve = new ECCurve.Fp(new BigInteger(ECParams.P_224_R1, 16), new BigInteger(ECParams.A_224_R1, 16),
            new BigInteger(ECParams.B_224_R1, 16));

    byte[] seed = Hex.decode(ECParams.SEED_224_R1);

    // finally use the seed in the ECKeyGenerationParameters along with the others
    // ECKeyGenerationParameters(ECDomainParameters(ECCurve, G, n, h),random)
    kpGen.init(new ECKeyGenerationParameters(
            new ECDomainParameters(curve, curve.decodePoint(Hex.decode(ECParams.G_224_R1_NCOMP)),
                    new BigInteger(ECParams.N_224_R1, 16), new BigInteger(ECParams.H_224_R1, 16), seed),
            new SecureRandom()));

    return kpGen.generateKeyPair();
}

From source file:exchange.User.java

public User(String nick, String passw, String fonct) throws NoSuchAlgorithmException, PGPException {
    this.nickname = nick;
    this.password = passw;
    this.fonction = fonct;

    // Initialisation de la paire de cls PGP
    AsymmetricCipherKeyPairGenerator gen = new RSAKeyPairGenerator();

    gen.init(new RSAKeyGenerationParameters(new BigInteger("10001", 16), //publicExponent
            SecureRandom.getInstance("SHA1PRNG"), //prng
            1024, //strength
            80//certainty
    ));/*  www  . j  a  v a2 s. co  m*/
    AsymmetricCipherKeyPair kPair = gen.generateKeyPair();

    keyPair = new BcPGPKeyPair(PublicKeyAlgorithmTags.RSA_SIGN, kPair, new Date());
    privateKey = keyPair.getPrivateKey();
    keyAlgorithm = keyPair.getPublicKey().getAlgorithm();
}

From source file:org.spout.api.security.SecurityHandler.java

License:Open Source License

public AsymmetricCipherKeyPair getKeyPair(int keySize, String algorithm, String RNGAlgorithm,
        String RNGProvider) {//www  . j a  v a 2 s . c o m
    AsymmetricCipherKeyPair pair = serverKeys.get(algorithm);
    if (pair != null) {
        return pair;
    }

    if (provider == null) {
        return pair;
    }

    SecureRandom secureRandom = getSecureRandom(RNGAlgorithm, RNGProvider);
    if (secureRandom == null) {
        return null;
    }

    AsymmetricCipherKeyPairGenerator generator = getGenerator(algorithm);

    if (generator == null) {
        return null;
    }

    initGenerator(keySize, algorithm, generator, secureRandom);

    AsymmetricCipherKeyPair newPair = generator.generateKeyPair();

    AsymmetricCipherKeyPair oldPair = serverKeys.putIfAbsent(algorithm, newPair);
    if (oldPair != null) {
        return oldPair;
    }

    return newPair;
}

From source file:org.xwiki.crypto.internal.asymmetric.generator.BcDHKeyPairGenerator.java

License:Open Source License

@Override
public AsymmetricKeyPair generate(KeyGenerationParameters parameters) {
    org.bouncycastle.crypto.params.DHParameters keyGenParams;

    if (parameters instanceof DHKeyParametersGenerationParameters) {
        keyGenParams = BcDHKeyParameterGenerator.getDhParameters(random.get(),
                (DHKeyParametersGenerationParameters) parameters);
    } else if (parameters instanceof DHKeyGenerationParameters) {
        keyGenParams = getDhParameters((DHKeyGenerationParameters) parameters);
    } else {//from ww w.  ja v a  2s . c o  m
        throw new IllegalArgumentException(
                "Invalid parameters for DSA key generator: " + parameters.getClass().getName());
    }

    AsymmetricCipherKeyPairGenerator generator = new DHKeyPairGenerator();
    generator.init(new org.bouncycastle.crypto.params.DHKeyGenerationParameters(random.get(), keyGenParams));

    return getKeyPair(generator.generateKeyPair());
}

From source file:org.xwiki.crypto.internal.asymmetric.generator.BcDSAKeyPairGenerator.java

License:Open Source License

@Override
public AsymmetricKeyPair generate(KeyGenerationParameters parameters) {
    org.bouncycastle.crypto.params.DSAParameters keyGenParams;

    if (parameters instanceof DSAKeyParametersGenerationParameters) {
        keyGenParams = getDsaParameters((DSAKeyGenerationParameters) parametersGenerator
                .generate((DSAKeyParametersGenerationParameters) parameters));
    } else if (parameters instanceof DSAKeyGenerationParameters) {
        keyGenParams = getDsaParameters((DSAKeyGenerationParameters) parameters);
    } else {//from  ww w.  j  av  a 2s  .co m
        throw new IllegalArgumentException(
                "Invalid parameters for DSA key generator: " + parameters.getClass().getName());
    }

    AsymmetricCipherKeyPairGenerator generator = new DSAKeyPairGenerator();
    generator.init(new org.bouncycastle.crypto.params.DSAKeyGenerationParameters(random.get(), keyGenParams));

    return getKeyPair(generator.generateKeyPair());
}

From source file:org.xwiki.crypto.internal.asymmetric.generator.BcRSAKeyPairGenerator.java

License:Open Source License

@Override
public AsymmetricKeyPair generate(KeyGenerationParameters parameters) {
    if (!(parameters instanceof RSAKeyGenerationParameters)) {
        throw new IllegalArgumentException(
                "Invalid parameters for RSA key generator: " + parameters.getClass().getName());
    }/*from  w  w  w .  j  a  va2  s  .  c o  m*/

    RSAKeyGenerationParameters params = (RSAKeyGenerationParameters) parameters;

    org.bouncycastle.crypto.params.RSAKeyGenerationParameters genParam = new org.bouncycastle.crypto.params.RSAKeyGenerationParameters(
            params.getPublicExponent(), random.get(), params.getStrength() * 8, params.getCertainty());

    AsymmetricCipherKeyPairGenerator generator = new RSAKeyPairGenerator();
    generator.init(genParam);

    return getKeyPair(generator.generateKeyPair());
}