Example usage for org.bouncycastle.asn1.pkcs PKCSObjectIdentifiers id_PBKDF2

List of usage examples for org.bouncycastle.asn1.pkcs PKCSObjectIdentifiers id_PBKDF2

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.pkcs PKCSObjectIdentifiers id_PBKDF2.

Prototype

ASN1ObjectIdentifier id_PBKDF2

To view the source code for org.bouncycastle.asn1.pkcs PKCSObjectIdentifiers id_PBKDF2.

Click Source Link

Document

PKCS#5: 1.2.840.113549.1.5.12

Usage

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());
    }// www. j  av a 2s .co 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.factory.BcPKCS5S2KeyDerivationFunctionFactory.java

License:Open Source License

@Override
public KeyDerivationFunction getInstance(ASN1Encodable parameters) {
    KeyDerivationFunc kdf = KeyDerivationFunc.getInstance(parameters);

    if (!kdf.getAlgorithm().equals(PKCSObjectIdentifiers.id_PBKDF2)) {
        throw new IllegalArgumentException(
                "Illegal algorithm identifier for PBKDF2: " + kdf.getAlgorithm().getId());
    }//from w w  w.  ja  va  2s. c o  m

    PBKDF2Params params = PBKDF2Params.getInstance(kdf.getParameters());

    return getInstance(
            new PBKDF2Parameters((params.getKeyLength() != null) ? params.getKeyLength().intValue() : -1,
                    params.getIterationCount().intValue(), params.getSalt(),
                    toDigestHint(params.getPseudoRandomFunctionIdentifier())));
}