Example #1
0
        private SymmetricAlgorithm GetCryptoProvider(byte[] iv)
        {
            var result = encryptionSettings.GenerateAlgorithm();

            encryptionStartingKeyAndIV = encryptionStartingKeyAndIV ?? GetStartingKeyAndIVForEncryption(result);

            if (iv != null && iv.Length != encryptionIVSize)
            {
                throw new ArgumentException("GetCryptoProvider: IV has wrong length. Given length: " + iv.Length + ", expected length: " + encryptionIVSize);
            }

            result.Key = encryptionStartingKeyAndIV.Item1;
            result.IV  = iv ?? encryptionStartingKeyAndIV.Item2;
            return(result);
        }