List of usage examples for org.bouncycastle.crypto PBEParametersGenerator generateDerivedParameters
public abstract CipherParameters generateDerivedParameters(int keySize);
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); }