Example usage for org.bouncycastle.crypto.params RC5Parameters RC5Parameters

List of usage examples for org.bouncycastle.crypto.params RC5Parameters RC5Parameters

Introduction

In this page you can find the example usage for org.bouncycastle.crypto.params RC5Parameters RC5Parameters.

Prototype

public RC5Parameters(byte[] key, int rounds) 

Source Link

Usage

From source file:edu.biu.scapi.tools.Translation.BCParametersTranslator.java

License:Open Source License

/** 
 * This function gets an on object of type AlgorithmParameterSpec and converts it or translates it to a suitable CipherParameters object of
 * Bouncy Castle, if exists./*from w w  w  .  j  a va  2 s.c o m*/
 * @param param the AlgorithmParameterSpec to translate
 * @return a CipherParameters object from Bouncy Castle that matches the param passed as argument if exists, otherwise returns null
 */
public CipherParameters translateParameter(AlgorithmParameterSpec param) {

    if (param instanceof RC5ParameterSpec) {

        RC5ParameterSpec rc5Params = (RC5ParameterSpec) param;
        return new RC5Parameters(rc5Params.getIV(), rc5Params.getRounds());
    }

    return null;

}

From source file:org.cryptacular.pbe.PBES2EncryptionScheme.java

License:Open Source License

/**
 * Initializes the block cipher and sets up its initialization parameters.
 *
 * @param  generator  Derived key generator.
 * @param  scheme  PKCS#5 encryption scheme.
 *//*from www. j  a  va2  s  .  c om*/
private void initCipher(final PKCS5S2ParametersGenerator generator,
        final org.bouncycastle.asn1.pkcs.EncryptionScheme scheme) {
    final PBES2Algorithm alg = PBES2Algorithm.fromOid(scheme.getAlgorithm().getId());
    if (keyLength == 0) {
        keyLength = alg.getKeySize();
    }

    byte[] iv = null;
    CipherParameters cipherParameters = generator.generateDerivedParameters(keyLength);
    switch (alg) {

    case RC2:
        setCipher(alg.getCipherSpec().newInstance());

        final ASN1Sequence rc2Params = ASN1Sequence.getInstance(scheme.getParameters());
        if (rc2Params.size() > 1) {
            cipherParameters = new RC2Parameters(((KeyParameter) cipherParameters).getKey(),
                    ASN1Integer.getInstance(rc2Params.getObjectAt(0)).getValue().intValue());
            iv = ASN1OctetString.getInstance(rc2Params.getObjectAt(0)).getOctets();
        }
        break;

    case RC5:

        final ASN1Sequence rc5Params = ASN1Sequence.getInstance(scheme.getParameters());
        final int rounds = ASN1Integer.getInstance(rc5Params.getObjectAt(1)).getValue().intValue();
        final int blockSize = ASN1Integer.getInstance(rc5Params.getObjectAt(2)).getValue().intValue();
        if (blockSize == 32) {
            setCipher(new PaddedBufferedBlockCipher(new CBCBlockCipher(new RC532Engine()), new PKCS7Padding()));
        }
        cipherParameters = new RC5Parameters(((KeyParameter) cipherParameters).getKey(), rounds);
        if (rc5Params.size() > 3) {
            iv = ASN1OctetString.getInstance(rc5Params.getObjectAt(3)).getOctets();
        }
        break;

    default:
        setCipher(alg.getCipherSpec().newInstance());
        iv = ASN1OctetString.getInstance(scheme.getParameters()).getOctets();
    }
    if (iv != null) {
        cipherParameters = new ParametersWithIV(cipherParameters, iv);
    }
    setCipherParameters(cipherParameters);
}

From source file:org.xwiki.crypto.cipher.internal.symmetric.factory.BcRc5b128CbcPaddedCipherFactory.java

License:Open Source License

@Override
protected org.bouncycastle.crypto.CipherParameters getBcKeyParameter(KeyParameter parameter) {
    if (parameter instanceof RC5KeyParameters) {
        return new RC5Parameters(parameter.getKey(), ((RC5KeyParameters) parameter).getRounds());
    } else {//w  ww. j av a  2s  .com
        return new org.bouncycastle.crypto.params.KeyParameter(parameter.getKey());
    }
}