Example usage for org.bouncycastle.crypto PBEParametersGenerator generateDerivedParameters

List of usage examples for org.bouncycastle.crypto PBEParametersGenerator generateDerivedParameters

Introduction

In this page you can find the example usage for org.bouncycastle.crypto PBEParametersGenerator generateDerivedParameters.

Prototype

public abstract CipherParameters generateDerivedParameters(int keySize);

Source Link

Document

generate derived parameters for a key of length keySize.

Usage

From source file:com.wlami.mibox.core.encryption.PBKDF2.java

License:Open Source License

protected static byte[] doPbkdf2(String password, String salt, int rounds) {
    PBEParametersGenerator pbeParametersGenerator = new PKCS5S2ParametersGenerator();
    pbeParametersGenerator.init(PBEParametersGenerator.PKCS5PasswordToBytes(password.toCharArray()),
            PBEParametersGenerator.PKCS5PasswordToBytes(salt.toCharArray()), rounds);
    KeyParameter keyParameter = (KeyParameter) pbeParametersGenerator
            .generateDerivedParameters(DEFAULT_KEY_LENGTH_BIT);
    return keyParameter.getKey();
}

From source file:edu.vt.middleware.crypt.pbe.AbstractPKCSKeyGenerator.java

License:Open Source License

/** {@inheritDoc} */
public byte[] generate(final char[] password, final int size) {
    if (size < 1) {
        throw new IllegalArgumentException("Size must be positive integer.");
    }/*  w w  w .java  2  s  . c  om*/

    final PBEParametersGenerator generator = newParamGenerator();
    generator.init(toBytes(password), salt, iterationCount);

    final KeyParameter p = (KeyParameter) generator.generateDerivedParameters(size);
    return p.getKey();
}

From source file:edu.vt.middleware.crypt.PbeKeyGenerator.java

License:Open Source License

/**
 * Generate an encryption key from a password using the given parameter
 * generator./*from www  .ja v  a  2  s .  c  o m*/
 *
 * @param  generator  Key generator for specific PBE method.
 * @param  password  Password as byte array (depends on PBE method).
 * @param  keyBitLength  Size of generated key in bits.
 * @param  salt  Key initialization data.
 *
 * @return  Secret key derived from password using PBE key generation method.
 */
private SecretKey generate(final PBEParametersGenerator generator, final byte[] password,
        final int keyBitLength, final byte[] salt) {
    generator.init(password, salt, iterations);

    final KeyParameter keyParam = (KeyParameter) generator.generateDerivedParameters(keyBitLength);
    final SecretKeySpec spec = new SecretKeySpec(keyParam.getKey(), symmetricAlg.getAlgorithm());
    return spec;
}

From source file:org.jruby.ext.openssl.PKCS5.java

License:Open Source License

private static RubyString generatePBEKey(final Ruby runtime, final char[] pass, final byte[] salt,
        final int iter, final int keySize) {
    PBEParametersGenerator generator = new PKCS5S2ParametersGenerator();
    generator.init(PBEParametersGenerator.PKCS5PasswordToBytes(pass), salt, iter);
    CipherParameters params = generator.generateDerivedParameters(keySize * 8);
    return StringHelper.newString(runtime, ((KeyParameter) params).getKey());
}

From source file:org.jruby.ext.openssl.x509store.PEMInputOutput.java

License:LGPL

private static CipherParameters extractPBES2CipherParams(char[] password, PBES2Parameters pbeParams) {
    PBKDF2Params pbkdfParams = PBKDF2Params.getInstance(pbeParams.getKeyDerivationFunc().getParameters());
    int keySize = 192;
    if (pbkdfParams.getKeyLength() != null) {
        keySize = pbkdfParams.getKeyLength().intValue() * 8;
    }//from   w  w  w.j a va  2  s  .c  o  m
    int iterationCount = pbkdfParams.getIterationCount().intValue();
    byte[] salt = pbkdfParams.getSalt();
    PBEParametersGenerator generator = new PKCS5S2ParametersGenerator();
    generator.init(PBEParametersGenerator.PKCS5PasswordToBytes(password), salt, iterationCount);
    return generator.generateDerivedParameters(keySize);
}

From source file:org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor.java

License:Apache License

BouncyCastleAesBytesEncryptor(String password, CharSequence salt, BytesKeyGenerator ivGenerator) {
    if (ivGenerator.getKeyLength() != 16) {
        throw new IllegalArgumentException("ivGenerator key length != block size 16");
    }//w ww .j av a  2  s  . c om
    this.ivGenerator = ivGenerator;
    PBEParametersGenerator keyGenerator = new PKCS5S2ParametersGenerator();
    byte[] pkcs12PasswordBytes = PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password.toCharArray());
    keyGenerator.init(pkcs12PasswordBytes, Hex.decode(salt), 1024);
    this.secretKey = (KeyParameter) keyGenerator.generateDerivedParameters(256);
}