예제 #1
0
        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);
        }
예제 #2
0
        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);
        }