Exemplo n.º 1
0
        public async Task <string> DecryptAsync(CryptoKeySet cryptoKeySet, string valueToDecrypt)
        {
            string plaintext = null;

            using (AesManaged algorithm = new AesManaged())
            {
                algorithm.Key = Convert.FromBase64String(cryptoKeySet.Key);
                algorithm.IV  = Convert.FromBase64String(cryptoKeySet.IV);
                byte[] cipher = Convert.FromBase64String(valueToDecrypt);

                ICryptoTransform decryptor = algorithm.CreateDecryptor(algorithm.Key, algorithm.IV);

                using (MemoryStream stream = new MemoryStream(cipher))
                {
                    using (CryptoStream cryptoStream = new CryptoStream(stream, decryptor, CryptoStreamMode.Read))
                    {
                        using (StreamReader streamReader = new StreamReader(cryptoStream))
                        {
                            plaintext = await streamReader.ReadToEndAsync();
                        }
                    }
                }
            }

            return(plaintext);
        }
Exemplo n.º 2
0
        public async Task <string> EncryptAsync(CryptoKeySet cryptoKeySet, string valueToEncrypt)
        {
            byte[] encrypted;
            using (AesManaged algorithm = new AesManaged())
            {
                algorithm.Key = Convert.FromBase64String(cryptoKeySet.Key);
                algorithm.IV  = Convert.FromBase64String(cryptoKeySet.IV);

                ICryptoTransform encryptor = algorithm.CreateEncryptor(algorithm.Key, algorithm.IV);

                using (MemoryStream stream = new MemoryStream())
                {
                    using (CryptoStream cryptoStream = new CryptoStream(stream, encryptor, CryptoStreamMode.Write))
                    {
                        using (StreamWriter streamWriter = new StreamWriter(cryptoStream))
                        {
                            await streamWriter.WriteAsync(valueToEncrypt);
                        }
                        encrypted = stream.ToArray();
                    }
                }
            }

            return(Convert.ToBase64String(encrypted));
        }
Exemplo n.º 3
0
        public CryptoKeySet GenerateCryptoKeySet()
        {
            CryptoKeySet cryptoKeySet = new CryptoKeySet();

            using (AesManaged algorithm = new AesManaged())
            {
                algorithm.GenerateKey();
                algorithm.GenerateIV();

                cryptoKeySet.Key = Convert.ToBase64String(algorithm.Key);
                cryptoKeySet.IV  = Convert.ToBase64String(algorithm.IV);
            }

            return(cryptoKeySet);
        }