ServiceStack.AesUtils.CreateSymmetricAlgorithm C# (CSharp) Méthode

CreateSymmetricAlgorithm() public static méthode

public static CreateSymmetricAlgorithm ( ) : SymmetricAlgorithm
Résultat System.Security.Cryptography.SymmetricAlgorithm
        public static SymmetricAlgorithm CreateSymmetricAlgorithm()
        {
            var aes = Aes.Create();
            aes.KeySize = KeySize;
            aes.BlockSize = BlockSize;
            aes.Mode = CipherMode.CBC;
            aes.Padding = PaddingMode.PKCS7;
            return aes;
        }

Usage Example

Exemple #1
0
        public static byte[] DecryptAuthenticated(byte[] authEncryptedBytes, byte[] cryptKey)
        {
            if (cryptKey == null || cryptKey.Length != KeySizeBytes)
            {
                throw new ArgumentException($"CryptKey needs to be {KeySize} bits", nameof(cryptKey));
            }

            //Grab IV from message
            var iv = new byte[AesUtils.BlockSizeBytes];

            Buffer.BlockCopy(authEncryptedBytes, 0, iv, 0, iv.Length);

            using (var aes = AesUtils.CreateSymmetricAlgorithm())
            {
                using (var decrypter = aes.CreateDecryptor(cryptKey, iv))
                    using (var decryptedStream = new MemoryStream())
                    {
                        using (var decrypterStream = new CryptoStream(decryptedStream, decrypter, CryptoStreamMode.Write))
                            using (var writer = new BinaryWriter(decrypterStream))
                            {
                                //Decrypt Cipher Text from Message
                                writer.Write(
                                    authEncryptedBytes,
                                    iv.Length,
                                    authEncryptedBytes.Length - iv.Length - KeySizeBytes);
                            }

                        return(decryptedStream.ToArray());
                    }
            }
        }