List of usage examples for org.bouncycastle.asn1.pkcs KeyDerivationFunc KeyDerivationFunc
public KeyDerivationFunc(ASN1ObjectIdentifier objectId, ASN1Encodable parameters)
From source file:org.xwiki.crypto.password.internal.kdf.BcScryptKDF.java
License:Open Source License
/** * @return an ASN.1 representation of the key derivation function parameters. *//* ww w . j a v a 2 s . com*/ public KeyDerivationFunc getKeyDerivationFunction() { return new KeyDerivationFunc(ALG_ID, new ScryptKDFParams(parameters.getSalt(), parameters.getCostParameter(), parameters.getBlockSize(), parameters.getParallelizationParameter(), parameters.getKeySize())); }
From source file:org.xwiki.crypto.password.internal.kdf.factory.BcPKCS5S2KeyDerivationFunctionFactory.java
License:Open Source License
@Override public KeyDerivationFunction getInstance(KeyDerivationFunctionParameters params) { if (!(params instanceof PBKDF2Parameters)) { throw new IllegalArgumentException( "Invalid parameter used for PKCS5S2 function: " + params.getClass().getName()); }/*from www .j a v a2 s. c o m*/ PBKDF2Parameters kdfParams = (PBKDF2Parameters) params; PKCS5S2ParametersGenerator generator; BcDigestFactory factory = null; if (kdfParams.getPseudoRandomFuntionHint() != null) { factory = this.getDigestFactory(kdfParams.getPseudoRandomFuntionHint()); generator = new PKCS5S2ParametersGenerator(factory.getDigestInstance()); } else { generator = new PKCS5S2ParametersGenerator(); } return new AbstractBcPBKDF2(generator, (PBKDF2Parameters) params, (factory != null) ? toHmacAlgId(factory.getAlgorithmIdentifier()) : HMAC_SHA1) { @Override public KeyDerivationFunc getKeyDerivationFunction() { PBKDF2Parameters parameters = (PBKDF2Parameters) getParameters(); AlgorithmIdentifier algId = getPRFAlgorithmIdentifier(); return new KeyDerivationFunc(PKCSObjectIdentifiers.id_PBKDF2, (isKeySizeOverwritten()) ? new PBKDF2Params(parameters.getSalt(), parameters.getIterationCount(), algId) : new PBKDF2Params(parameters.getSalt(), parameters.getIterationCount(), parameters.getKeySize(), algId)); } }; }
From source file:org.xwiki.crypto.password.internal.kdf.PBES2Parameters.java
License:Open Source License
/** * Build a new instance from ASN.1 sequence. * * @param seq an ASN.1 sequence corresponding to PBES2 parameters. *//* w w w . j av a 2 s . c o m*/ private PBES2Parameters(ASN1Sequence seq) { Enumeration e = seq.getObjects(); ASN1Sequence funcSeq = ASN1Sequence.getInstance(((ASN1Encodable) e.nextElement()).toASN1Primitive()); if (funcSeq.getObjectAt(0).equals(id_PBKDF2)) { func = new KeyDerivationFunc(id_PBKDF2, PBKDF2Params.getInstance(funcSeq.getObjectAt(1))); } else { func = KeyDerivationFunc.getInstance(funcSeq); } scheme = EncryptionScheme.getInstance(e.nextElement()); }