Example usage for org.bouncycastle.crypto.generators PKCS5S1ParametersGenerator PKCS5S1ParametersGenerator

List of usage examples for org.bouncycastle.crypto.generators PKCS5S1ParametersGenerator PKCS5S1ParametersGenerator

Introduction

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

Prototype

public PKCS5S1ParametersGenerator(Digest digest) 

Source Link

Document

Construct a PKCS 5 Scheme 1 Parameters generator.

Usage

From source file:com.giacomodrago.immediatecrypt.aes.AESFacadeImpl.java

License:Open Source License

protected ParametersWithIV createDecryptionParameters(String password, String salt, byte[] iv) {

    byte[] passwordBytes = password.getBytes(Charsets.UTF_8);
    byte[] saltBytes = salt.getBytes(Charsets.UTF_8);

    PKCS5S1ParametersGenerator keyGenerator = new PKCS5S1ParametersGenerator(new SHA512Digest());
    keyGenerator.init(passwordBytes, saltBytes, PBE_ITERATION_COUNT);

    KeyParameter params = (KeyParameter) keyGenerator.generateDerivedParameters(KEY_SIZE);

    return new ParametersWithIV(params, iv);

}

From source file:com.giacomodrago.immediatecrypt.aes.AESFacadeImpl.java

License:Open Source License

protected ParametersWithIV createEncryptionParameters(String password, String salt) {

    byte[] passwordBytes = password.getBytes(Charsets.UTF_8);
    byte[] saltBytes = salt.getBytes(Charsets.UTF_8);

    PKCS5S1ParametersGenerator keyGenerator = new PKCS5S1ParametersGenerator(new SHA512Digest());
    keyGenerator.init(passwordBytes, saltBytes, PBE_ITERATION_COUNT);

    ParametersWithIV params = (ParametersWithIV) keyGenerator.generateDerivedParameters(KEY_SIZE, IV_SIZE);

    return params;

}

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

License:Open Source License

/** {@inheritDoc} */
protected PBEParametersGenerator newParamGenerator() {
    return new PKCS5S1ParametersGenerator(digest.getDigest());
}

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

License:Open Source License

/**
 * Generate a key from a text password using the PKCS#5 version 1 method
 * described at http://www.rsa.com/rsalabs/node.asp?id=2127.
 *
 * @param  password  Raw material used for key generation.
 * @param  keyBitLength  Size of generated key in bits.
 * @param  digest  Digest algorithm to use during key generation.
 * @param  salt  Key initialization data.
 *
 * @return  Secret key based on password.
 *///from   ww  w  .  ja  v  a2  s  .  c o m
public SecretKey generatePkcs5v1(final char[] password, final int keyBitLength, final DigestAlgorithm digest,
        final byte[] salt) {
    final int minSize = keyBitLength / BITS_IN_BYTE;
    if (digest.getDigest().getDigestSize() < minSize) {
        throw new IllegalArgumentException("Digest is too small for chosen key size. "
                + "Use a digest whose size is at least " + minSize + " bytes.");
    }
    return generate(new PKCS5S1ParametersGenerator(digest.getDigest()),
            PBEParametersGenerator.PKCS5PasswordToBytes(password), keyBitLength, salt);
}

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

License:Open Source License

/**
 * Generate a key/IV pair from a text password using the PKCS#5 version 1
 * method described at http://www.rsa.com/rsalabs/node.asp?id=2127.
 *
 * @param  password  Raw material used for key generation.
 * @param  keyBitLength  Size of generated key in bits.
 * @param  ivBitLength  Size of generated IV in bits.
 * @param  digest  Digest algorithm to use during key generation.
 * @param  salt  Key initialization data.
 *
 * @return  Secret key based on password.
 *//*from www  .  j  a va 2  s . c  om*/
public KeyWithIV generatePkcs5v1(final char[] password, final int keyBitLength, final int ivBitLength,
        final DigestAlgorithm digest, final byte[] salt) {
    final int minSize = (keyBitLength + ivBitLength) / BITS_IN_BYTE;
    if (digest.getDigest().getDigestSize() < minSize) {
        throw new IllegalArgumentException("Digest is too small for chosen key + IV size. "
                + "Use a digest whose size is at least " + minSize + " bytes.");
    }
    return generate(new PKCS5S1ParametersGenerator(digest.getDigest()),
            PBEParametersGenerator.PKCS5PasswordToBytes(password), keyBitLength, ivBitLength, salt);
}

From source file:org.cryptacular.pbe.PBES1EncryptionScheme.java

License:Open Source License

/**
 * Creates a new instance with the given parameters.
 *
 * @param  alg  Describes hash/algorithm pair suitable for PBES1 scheme.
 * @param  params  Key generation function salt and iteration count.
 * @param  password  Password used to derive key.
 *//*from ww w  .java 2  s  .c o m*/
public PBES1EncryptionScheme(final PBES1Algorithm alg, final PBEParameter params, final char[] password) {
    final byte[] salt = params.getSalt();
    final int iterations = params.getIterationCount().intValue();
    final PKCS5S1ParametersGenerator generator = new PKCS5S1ParametersGenerator(
            alg.getDigestSpec().newInstance());
    generator.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password), salt, iterations);
    setCipher(alg.getCipherSpec().newInstance());
    setCipherParameters(generator.generateDerivedParameters(KEY_LENGTH, IV_LENGTH));
}