NServiceBus.RijndaelEncryptionService.Encrypt C# (CSharp) Method

Encrypt() public method

public Encrypt ( string value, IOutgoingLogicalMessageContext context ) : NServiceBus.EncryptedValue
value string
context IOutgoingLogicalMessageContext
return NServiceBus.EncryptedValue
        public EncryptedValue Encrypt(string value, IOutgoingLogicalMessageContext context)
        {
            if (string.IsNullOrEmpty(encryptionKeyIdentifier))
            {
                throw new InvalidOperationException("It is required to set the rijndael key identifier.");
            }

            AddKeyIdentifierHeader(context);

            using (var rijndael = new RijndaelManaged())
            {
                rijndael.Key = encryptionKey;
                rijndael.Mode = CipherMode.CBC;
                ConfigureIV(rijndael);

                using (var encryptor = rijndael.CreateEncryptor())
                {
                    using (var memoryStream = new MemoryStream())
                    {
                        using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
                        {
                            using (var writer = new StreamWriter(cryptoStream))
                            {
                                writer.Write(value);
                                writer.Flush();
                                cryptoStream.Flush();
                                cryptoStream.FlushFinalBlock();
                                return new EncryptedValue
                                {
                                    EncryptedBase64Value = Convert.ToBase64String(memoryStream.ToArray()),
                                    Base64Iv = Convert.ToBase64String(rijndael.IV)
                                };
                            }
                        }
                    }
                }
            }
        }