public void TestEncryptDescryptWithFeistelCipher() { const string plainText = "It's must be crypted!"; string roundtrip; using (var feistelCrypto = new FeistelCipher.Cryptography.FeistelCipher(XorCryptor, IncKeyGenerator)) { byte[] encrypted; var encryptor = feistelCrypto.CreateEncryptor(); using (var msEncrypt = new MemoryStream()) { using (var csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) { using (var swEncrypt = new StreamWriter(csEncrypt)) { swEncrypt.Write(plainText); } encrypted = msEncrypt.ToArray(); } } var decryptor = feistelCrypto.CreateDecryptor(); using (var msDecrypt = new MemoryStream(encrypted)) { using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) { using (var srDecrypt = new StreamReader(csDecrypt)) { roundtrip = srDecrypt.ReadToEnd(); } } } } Assert.AreEqual(plainText, roundtrip); }