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 boolean isSimilarHmacPbkd(PBKDFConfig storePBKDFConfig, KeyDerivationFunc hmacPkbdAlgorithm) if (!storePBKDFConfig.getAlgorithm().equals(hmacPkbdAlgorithm.getAlgorithm()))