Example usage for org.bouncycastle.asn1.pkcs KeyDerivationFunc KeyDerivationFunc

List of usage examples for org.bouncycastle.asn1.pkcs KeyDerivationFunc KeyDerivationFunc

Introduction

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

Prototype

public KeyDerivationFunc(ASN1ObjectIdentifier objectId, ASN1Encodable parameters) 

Source Link

Usage

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());
}