List of usage examples for org.bouncycastle.crypto.generators PKCS5S1ParametersGenerator PKCS5S1ParametersGenerator
public PKCS5S1ParametersGenerator(Digest digest)
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)); }