/** * Create PBKDF2Params from the passed in object, * * @param obj either PBKDF2Params or an ASN2Sequence. * @return a PBKDF2Params instance. */ public static PBKDF2Params getInstance( Object obj) { if (obj instanceof PBKDF2Params) { return (PBKDF2Params)obj; } if (obj != null) { return new PBKDF2Params(ASN1Sequence.getInstance(obj)); } return null; }
/** * Create PBKDF2Params from the passed in object, * * @param obj either PBKDF2Params or an ASN1Sequence. * @return a PBKDF2Params instance. */ public static PBKDF2Params getInstance( Object obj) { if (obj instanceof PBKDF2Params) { return (PBKDF2Params)obj; } if (obj != null) { return new PBKDF2Params(ASN1Sequence.getInstance(obj)); } return null; }
private KeyDerivationFunc generatePkbdAlgorithmIdentifier(ASN1ObjectIdentifier derivationAlgorithm, int keySizeInBytes) { byte[] pbkdSalt = new byte[512 / 8]; getDefaultSecureRandom().nextBytes(pbkdSalt); if (PKCSObjectIdentifiers.id_PBKDF2.equals(derivationAlgorithm)) { return new KeyDerivationFunc(PKCSObjectIdentifiers.id_PBKDF2, new PBKDF2Params(pbkdSalt, 50 * 1024, keySizeInBytes, new AlgorithmIdentifier(PKCSObjectIdentifiers.id_hmacWithSHA512, DERNull.INSTANCE))); } else { throw new IllegalStateException("unknown derivation algorithm: " + derivationAlgorithm); } }
protected void engineInit( AlgorithmParameterSpec paramSpec) throws InvalidParameterSpecException { if (!(paramSpec instanceof PBEParameterSpec)) { throw new InvalidParameterSpecException("PBEParameterSpec required to initialise a PBKDF2 PBE parameters algorithm parameters object"); } PBEParameterSpec pbeSpec = (PBEParameterSpec)paramSpec; this.params = new PBKDF2Params(pbeSpec.getSalt(), pbeSpec.getIterationCount()); }
private KeyDerivationFunc generatePkbdAlgorithmIdentifier(PBKDFConfig pbkdfConfig, int keySizeInBytes) { if (MiscObjectIdentifiers.id_scrypt.equals(pbkdfConfig.getAlgorithm())) { ScryptConfig scryptConfig = (ScryptConfig)pbkdfConfig; byte[] pbkdSalt = new byte[scryptConfig.getSaltLength()]; getDefaultSecureRandom().nextBytes(pbkdSalt); ScryptParams params = new ScryptParams( pbkdSalt, scryptConfig.getCostParameter(), scryptConfig.getBlockSize(), scryptConfig.getParallelizationParameter(), keySizeInBytes); return new KeyDerivationFunc(MiscObjectIdentifiers.id_scrypt, params); } else { PBKDF2Config pbkdf2Config = (PBKDF2Config)pbkdfConfig; byte[] pbkdSalt = new byte[pbkdf2Config.getSaltLength()]; getDefaultSecureRandom().nextBytes(pbkdSalt); return new KeyDerivationFunc(PKCSObjectIdentifiers.id_PBKDF2, new PBKDF2Params(pbkdSalt, pbkdf2Config.getIterationCount(), keySizeInBytes, pbkdf2Config.getPRF())); } }
private KeyDerivationFunc generatePkbdAlgorithmIdentifier(KeyDerivationFunc baseAlg, int keySizeInBytes) { if (MiscObjectIdentifiers.id_scrypt.equals(baseAlg.getAlgorithm())) { ScryptParams oldParams = ScryptParams.getInstance(baseAlg.getParameters()); byte[] pbkdSalt = new byte[oldParams.getSalt().length]; getDefaultSecureRandom().nextBytes(pbkdSalt); ScryptParams params = new ScryptParams( pbkdSalt, oldParams.getCostParameter(), oldParams.getBlockSize(), oldParams.getParallelizationParameter(), BigInteger.valueOf(keySizeInBytes)); return new KeyDerivationFunc(MiscObjectIdentifiers.id_scrypt, params); } else { PBKDF2Params oldParams = PBKDF2Params.getInstance(baseAlg.getParameters()); byte[] pbkdSalt = new byte[oldParams.getSalt().length]; getDefaultSecureRandom().nextBytes(pbkdSalt); PBKDF2Params params = new PBKDF2Params(pbkdSalt, oldParams.getIterationCount().intValue(), keySizeInBytes, oldParams.getPrf()); return new KeyDerivationFunc(PKCSObjectIdentifiers.id_PBKDF2, params); } }
new PBES2Parameters( new KeyDerivationFunc(PKCSObjectIdentifiers.id_PBKDF2, new PBKDF2Params(pbkdfSalt, iterationCount, keysizeBits / 8, prf_hmacWithSHA256)), new EncryptionScheme(encAlgOid, new GCMParameters(nonce, tagByteLen))));