Esempio n. 1
0
        public void TestRandomString(Symmetric_AES.KeySize keySize, int?numChars)
        {
            var    key   = Symmetric_AES.GenerateRandomKey(keySize);
            string input = null;

            if (numChars.HasValue)
            {
                input = GetRandomString(numChars.Value, numChars.Value);
            }

            byte[] encrypted;
            string decrypted;

            using (var algorithm = new Symmetric_AES_ECB())
            {
                encrypted = algorithm.EncryptString(input, key);
            }
            using (var algorithm = new Symmetric_AES_ECB())
            {
                decrypted = algorithm.DecryptBytes(encrypted, key).AsString();
            }
            if (input == null)
            {
                Assert.IsNull(encrypted, "encrypted");
                Assert.IsNull(decrypted, "decrypted");
            }
            else
            {
                Assert.IsTrue(encrypted.Length >= input.Length, "encrypted.Length");
                Assert.IsTrue(decrypted.SequenceEqual(input), "Decrypted does not match original.");
            }
        }
Esempio n. 2
0
        public void TestUnicodeString(Symmetric_AES.KeySize keySize)
        {
            var    key   = Symmetric_AES.GenerateRandomKey(keySize);
            string input = Convert.ToBase64String(SecureRandomizer.GetRandomBytes(100)) + "\u01e2\u01f0\u020e\u0229";

            byte[] encrypted;
            string decrypted;

            using (var algorithm = new Symmetric_AES_ECB())
            {
                encrypted = algorithm.EncryptString(input, key);
            }
            using (var algorithm = new Symmetric_AES_ECB())
            {
                Assert.IsTrue(encrypted.Length > 100, "encrypted.Length");
                decrypted = algorithm.DecryptBytes(encrypted, key).AsString();
            }
            Assert.AreEqual(input, decrypted, string.Format("{0} | {1}", input, decrypted));
        }