public static SymmetricAlgorithm InitSymmetric(SymmetricAlgorithm algorithm, string password, int key_bit_length)
{
var salt = new byte[] { 1, 2, 23, 234, 37, 48, 134, 63, 248, 4 };
const int iterations = 234;
using (var rfc2898_derive_bytes = new Rfc2898DeriveBytes(password, salt, iterations))
{
if (!algorithm.ValidKeySize(key_bit_length))
throw new InvalidOperationException("Invalid size key");
algorithm.Key = rfc2898_derive_bytes.GetBytes(key_bit_length / 8);
algorithm.IV = rfc2898_derive_bytes.GetBytes(algorithm.BlockSize / 8);
return algorithm;
}
}