public void TestEncryptWithPasswordWithSalt()
        {
            byte[] salt = CreateRandomData(128);
            byte[] data = CreateRandomData(1000);


            byte[] encryptedData;
            string base64EncryptedData;

            using (ICrypto crypto = new AesCrypto("password!", salt))
            {
                encryptedData       = crypto.Encrypt(data);
                base64EncryptedData = crypto.EncryptToBase64(data);
            }

            byte[] decryptedData;
            byte[] decryptedDataFromBase64;
            using (ICrypto crypto = new AesCrypto("password!", salt))
            {
                decryptedData           = crypto.Decrypt(encryptedData);
                decryptedDataFromBase64 = crypto.Decrypt(base64EncryptedData);
            }

            TestHelper.AreEqual(data, decryptedData);
            TestHelper.AreEqual(data, decryptedDataFromBase64);
        }
        public void TestEncryptFromString()
        {
            string data = "Some test data";

            byte[] encryptedData;
            string base64EncryptedData;

            using (ICrypto crypto = new AesCrypto("password!"))
            {
                encryptedData       = crypto.Encrypt(data);
                base64EncryptedData = crypto.EncryptToBase64(data);
            }

            string decryptedData;
            string decryptedDataFromBase64;

            using (ICrypto crypto = new AesCrypto("password!"))
            {
                decryptedData           = crypto.DecryptToString(encryptedData);
                decryptedDataFromBase64 = crypto.DecryptToString(base64EncryptedData);
            }

            Assert.AreEqual(data, decryptedData);
            Assert.AreEqual(data, decryptedDataFromBase64);
        }