using Amazon.KeyManagementService;
using Amazon.KeyManagementService.Model;
using System.Threading.Tasks;
using System.Security.Cryptography;
public async static Task Main()
var aesKey = await DecryptDataEncryptionKeyWithKms("H6+isEXPXRxa5uHYMumUpEXHrw6T8SDxo6YlvFdh9hEQ6I4K3WlAFdMgt1KYR0XHBwIMy2kgjyBe\nXojJfp+Wf0PQghGUpbi8YLYuBOEdhIzL4j7EInc3roVTYa973mhR8Xc0NnpdPaMcAnwK5aU6tNVt\nW1Y0cjEdn4cIl+qrMdPzzokxnYk8WT+CuVWWfgywuxXwc5BgxNasYIjKYt27nxv1XO9jWft6wI+O\n8LqG47MuY4I3l9oBKmi8afrnDBFmrJhye+XuOyxxlkgOIH+DA7Qa1dp+cHRiHpNZyloI/HfWJ1Fg\nnDlJHMqpsra1bwDwNXClKhUtCqhwJVRcZU0/CA==\n");
var key = Convert.FromBase64String(aesKey.Key);
var iv = Convert.FromBase64String(aesKey.Iv);
var encryptedBytes = Convert.FromBase64String("Q6f/BlWR6JBXXFbKuD/J7yt6PwFllvH3pWolQ3j6UFrDBVNgBRlCH4T1+oRgrkTXQBuB5C0s3FEq\noLlo9tR9y9BnAXBXapaJc5NL7YYqTUjNJCfN64NNoLMBJR1Ac1aDv/CP553MSyPFai1mmbeQdSAZ\nKkEKtnQk0dvpZYB4JxhAfc1NB2sbSfS7mioMJJfdcykF2IAtXfDPHgwyjrcQq/nlIgYY4s8g1EAc\nHJqUZVqoGTP0QsM0mkb7tNwyVb4LQ+NLQE2ulfnmklZDTGLLW5W5zFERWLVZ69bbSxOH4qTtOJQL\n+zlxus1RvM3pRHcWWHOGjDyMkb0Og9BrYOQgODs82LwcZ2ILt6pKJcs0ra1NvAdv/5BeFYFDsKi3\nYhsODSt7BebvjuLdY8qZIKWfLCTG4MrdYNttCeQgAztyPAXBREbR99+Tjxl9dDsIT+C9TMuPI/UF\nGNZmxlpkmCwbW1yMXw8CuPlKROx4kQGCKOd5OpKV2NnOjj7eZb9kteB1wAs9Ogn28MTcrqSBjbnV\nhFZQROhY6XieFb3wMc2v6i4p1FZe8XNFB2XX1jFR3VSxMa2Txm44/p2NLq2TlOgN2ZeHVdcDZP8G\nYhBtJcBq6QUzYZlUdQ67olP7fzS2ScmKG42f2XzdVlGTB4IFoH1dlwR8MflcE/8i9s2VStYZwsUC\nd8yjRHYvfQulA1Z5fqfC0NtbSojIrseqve9MsFZuen3TtxZ4yGHExjpbjS7tZ7PqePbGgYum8G5L\niadGD0C+4HleCl6WYmFaa6KvmHTHl8s+7htOn9yGKOpq9/lg4UB2zOoACK+7ypV+8C8bnFTA0RIr\n7s7jYEua+Wr+x+BAzN6vTUCZ5FdcnsL7T5cgibuizsWQy7TYrKkG8FrV4XKjmNd2OBsu2dGt7d/s\n5K0ZMbZcSUSux2ewdVFe6VJBDrAEksfQeORUm/AptL06kU8vcrgKajNC7ZNQlmAGKXxhp43795DI\nrxMfgH4+J/g48nv+4vMx7JhFXIIJIbvSR01FLlgpk53dNf74PbWmD0fjep1j8FxA9mpiGOzYhMDc\nRDTGniDgdPhJ8In/z2w+6vDy70/GIpg0uynNQkDjSeBaIkC/KZV9eXa0WZ9r1sNeGnKiW5QCSYfw\n55xjbxLVIRauiEdH/4SzUiGabc3H3NaGFFd56qL3DpB38f12ebnqKfOOv32ggOBVNBzAGeQ7zF6r\nqwqZ/MyvtI7FXKBQUyCM83dOwIlj1ZXDCiD6RxvaMMhjUueN0EgothFJgZEviWpzvsHWZGL/oYaN\nzN1SsnMJ18EvaVgAcwysqVbu14TWaYXkDWo2D2OtfxqIWZevYsWOo+vwEHYIH1Xv/FLomejT64jn\n9xf2Ba90c2XD7+H0ofcCrNCl2ppVO6BSKSY/Y1dKskAYe+r9zFD+jU3foBAqNQ==\n");
Console.WriteLine(Decrypt2(encryptedBytes, key, iv));
public string Key { get; set; }
public string Iv { get; set; }
public async static Task<AESSettings> DecryptDataEncryptionKeyWithKms(string dataEncryptionKey)
var decryptResult = await Decrypt(dataEncryptionKey, "220db2d0-84b0-4400-9e18-91c6ad5dc8f0");
return JsonConvert.DeserializeObject<AESSettings>(decryptResult);
public async static Task<string> Decrypt(string cipherText, string keyId)
var credentials = new BasicAWSCredentials("AKIAQJT3IMNWUZ4TTWGV", "ViMzmjUmG7gnVqf44uyj6+Vs8AvOUFp2r+rYiCwM");
var kmsClient = new AmazonKeyManagementServiceClient(credentials, RegionEndpoint.APSoutheast1);
var ciphertextBlob = new MemoryStream(Convert.FromBase64String(cipherText));
var decryptRequest = new DecryptRequest
CiphertextBlob = ciphertextBlob,
EncryptionAlgorithm = EncryptionAlgorithmSpec.RSAES_OAEP_SHA_256,
var decryptResponse = await kmsClient.DecryptAsync(decryptRequest).ConfigureAwait(false);
return Encoding.UTF8.GetString(decryptResponse.Plaintext.ToArray());
public static string Decrypt2(byte[] encryptedData, byte[] key, byte[] iv)
MemoryStream memoryStream = null;
CryptoStream cryptoStream = null;
StreamReader reader = null;
var decryptor = cipher.CreateDecryptor(cipher.Key, cipher.IV);
memoryStream = new MemoryStream(encryptedData);
cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read);
using (reader = new StreamReader(cryptoStream))
plainText = reader.ReadToEnd();
if (cryptoStream != null)
if (memoryStream != null)