public override IBufferedCipher createCipher(bool encrypt)
{
PbeParametersGenerator pGen = new OpenSslPbeParametersGenerator();
pGen.Init(
PbeParametersGenerator.Pkcs5PasswordToBytes(pbe.Password),
pbe.Salt,
pbe.Iterations);
ParametersWithIV parameters = (ParametersWithIV)
pGen.GenerateDerivedParameters(pbe.BaseAlgorithm, pbe.KeySize, pbe.IvSize);
KeyParameter encKey = (KeyParameter) parameters.Parameters;
IBufferedCipher c;
if (pbe.BaseAlgorithm.Equals(Kpbe.Algorithms.RC4))
{
c = CipherUtilities.GetCipher(pbe.BaseAlgorithm);
c.Init(encrypt, encKey);
}
else
{
c = CipherUtilities.GetCipher(pbe.BaseAlgorithm + "/"+pbe.Mode+"/"+pbe.Padding);
c.Init(encrypt, parameters);
}
return c;
}