Example usage for org.bouncycastle.crypto.generators PKCS12ParametersGenerator generateDerivedParameters

List of usage examples for org.bouncycastle.crypto.generators PKCS12ParametersGenerator generateDerivedParameters

Introduction

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

Prototype

public CipherParameters generateDerivedParameters(int keySize) 

Source Link

Document

Generate a key parameter derived from the password, salt, and iteration count we are currently initialised with.

Usage

From source file:GenTestDKs.java

License:Open Source License

private static void testKey(PKCS12ParametersGenerator pgen, int keyLen, int iterCount, String password,
        byte[] salt) {
    System.out.println("key len = " + keyLen + ", iter count = " + iterCount + ", password = \"" + password
            + "\", salt len = " + salt.length);

    char[] pwChars = password.toCharArray();
    byte[] pwBytes = PBEParametersGenerator.PKCS12PasswordToBytes(pwChars);

    pgen.init(pwBytes, salt, iterCount);
    KeyParameter kp = (KeyParameter) pgen.generateDerivedParameters(keyLen);
    printByteArray(kp.getKey());/*from   ww  w  .j  a  va2  s.c o m*/
}

From source file:org.xmind.core.internal.security.BouncyCastleSecurityProvider.java

License:Open Source License

private BufferedBlockCipher createCipher(boolean encrypt, IEncryptionData encData, String password)
        throws CoreException {
    checkEncryptionData(encData);/*  ww w  . j  a  v a2  s.com*/

    // Create a parameter generator
    PKCS12ParametersGenerator paramGen = new PKCS12ParametersGenerator(new MD5Digest());

    // Get the password bytes
    byte[] pwBytes = password == null ? new byte[0]
            : PBEParametersGenerator.PKCS12PasswordToBytes(password.toCharArray());

    // Initialize the parameter generator with password bytes, 
    // salt and iteration counts
    paramGen.init(pwBytes, getSalt(encData), getIterationCount(encData));

    // Generate a parameter
    CipherParameters param = paramGen.generateDerivedParameters(128);

    // Create a block cipher
    BufferedBlockCipher cipher = new PaddedBufferedBlockCipher(new CBCBlockCipher(new AESEngine()));

    // Initialize the block cipher
    cipher.init(encrypt, param);
    return cipher;
}