public void RandomIv192() { var etmCiphertext1 = RijndaelEtM.Encrypt(Plaintext, Password, KeySize.Aes192); var etmCiphertext2 = RijndaelEtM.Encrypt(Plaintext, Password, KeySize.Aes192); var plaintext = RijndaelEtM.Decrypt(etmCiphertext1, Password, KeySize.Aes192); Assert.Equal(plaintext, Plaintext); Assert.NotEqual(etmCiphertext1, etmCiphertext2); }
public static string Decrypt(string cipherText, string passPhrase) { string decrypted = RijndaelEtM.Decrypt(cipherText, passPhrase, KeySize.Aes256); return(decrypted); /** * // Get the complete stream of bytes that represent: * // [32 bytes of Salt] + [32 bytes of IV] + [n bytes of CipherText] * var cipherTextBytesWithSaltAndIv = Convert.FromBase64String(cipherText); * // Get the saltbytes by extracting the first 32 bytes from the supplied cipherText bytes. * var saltStringBytes = cipherTextBytesWithSaltAndIv.Take(Keysize / 8).ToArray(); * // Get the IV bytes by extracting the next 32 bytes from the supplied cipherText bytes. * var ivStringBytes = cipherTextBytesWithSaltAndIv.Skip(Keysize / 8).Take(Keysize / 8).ToArray(); * // Get the actual cipher text bytes by removing the first 64 bytes from the cipherText string. * var cipherTextBytes = cipherTextBytesWithSaltAndIv.Skip((Keysize / 8) * 2).Take(cipherTextBytesWithSaltAndIv.Length - ((Keysize / 8) * 2)).ToArray(); * * using (var password = new Rfc2898DeriveBytes(passPhrase, saltStringBytes, DerivationIterations)) * { * var keyBytes = password.GetBytes(Keysize / 8); * using (var symmetricKey = new RijndaelManaged()) * { * symmetricKey.BlockSize = 256; * symmetricKey.Mode = CipherMode.CBC; * symmetricKey.Padding = PaddingMode.PKCS7; * using (var decryptor = symmetricKey.CreateDecryptor(keyBytes, ivStringBytes)) * { * using (var memoryStream = new MemoryStream(cipherTextBytes)) * { * using (var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read)) * { * var plainTextBytes = new byte[cipherTextBytes.Length]; * var decryptedByteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length); * memoryStream.Close(); * cryptoStream.Close(); * return Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount); * } * } * } * } * }**/ }
public void Decrypt256() { var plaintext = RijndaelEtM.Decrypt(EtmProof256, Password, KeySize.Aes256); Assert.Equal(plaintext, Plaintext); }
public void Decrypt192() { var plaintext = RijndaelEtM.Decrypt(EtmProof192, Password, KeySize.Aes192); Assert.Equal(plaintext, Plaintext); }
public static string Decrypt(string cipherText, string password) { return(RijndaelEtM.Decrypt(cipherText, password, KeySize.Aes256)); }
public static string Decrypt(string cipherText, string passPhrase) { string decrypted = RijndaelEtM.Decrypt(cipherText, passPhrase, KeySize.Aes256); return(decrypted); }