Example usage for org.bouncycastle.crypto.engines RC532Engine RC532Engine

List of usage examples for org.bouncycastle.crypto.engines RC532Engine RC532Engine

Introduction

In this page you can find the example usage for org.bouncycastle.crypto.engines RC532Engine RC532Engine.

Prototype

public RC532Engine() 

Source Link

Document

Create an instance of the RC5 encryption algorithm and set some defaults

Usage

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.
 *///w  ww . ja v a 2  s. co  m
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.BcRc5b64CbcPaddedCipherFactory.java

License:Open Source License

@Override
protected BlockCipher getEngineInstance() {
    return new RC532Engine();
}