public void CanDecryptData()
        {
            byte[] userData   = { 0, 1, 2, 3, 4, 1, 2, 3, 4 };
            byte[] cipherData = ProtectedData.Protect(userData, null, DataProtectionScope.CurrentUser);

            DataProtectionCryptographyService svc = new DataProtectionCryptographyService();

            byte[] restored = svc.DecryptSymmetric(cipherData);

            Assert.AreEqual(9, restored.Length, "Restored data is not correct.");
            for (int i = 0; i < userData.Length; i++)
            {
                Assert.AreEqual(userData[i], restored[i], "The decryption failed.");
            }
        }
        public void DecryptUsingEntropy()
        {
            byte[] userData = { 0, 1, 2, 3, 4, 1, 2, 3, 4 };
            byte[] entropy  = { 1, 2, 3, 4 };
            NameValueCollection settings = new NameValueCollection();

            settings["Entropy"] = Convert.ToBase64String(entropy);
            DataProtectionCryptographyService svc = new DataProtectionCryptographyService();

            svc.Configure(settings);
            byte[] cipherData = ProtectedData.Protect(userData, entropy, DataProtectionScope.CurrentUser);

            byte[] recovered = svc.DecryptSymmetric(cipherData);

            Assert.AreEqual(Convert.ToBase64String(userData), Convert.ToBase64String(recovered));
        }
        public void DecryptFailsIfNullData()
        {
            DataProtectionCryptographyService svc = new DataProtectionCryptographyService();

            svc.DecryptSymmetric(null);
        }