List of usage examples for org.bouncycastle.crypto.params RC5Parameters RC5Parameters
public RC5Parameters(byte[] key, int rounds)
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()); } }