Example #1
0
        private static void TestRSAFromFile()
        {
            try
            {
                byte[] originalValue = new byte[256];
                new System.Random().NextBytes(originalValue);

                for (int i = 0; i < 4; i++)
                {
                    DataProtector.DataProtectionScope scope = (i < 2 ? DataProtector.DataProtectionScope.CurrentUser : DataProtector.DataProtectionScope.LocalMachine);
                    RSA    rsa       = DataProtector.RSAFromFile(scope);
                    byte[] encrypted = rsa.Encrypt(originalValue, RSAEncryptionPadding.Pkcs1);
                    byte[] decrypted = rsa.Decrypt(encrypted, RSAEncryptionPadding.Pkcs1);
                    if (!originalValue.SequenceEqual(decrypted))
                    {
                        throw new InvalidDataException("TestRSAFromFile failure, original value not equal to decrypted value, scope: " + scope);
                    }
                }

                Console.WriteLine("TestRSAFromFile OK");
            }
            catch (Exception ex)
            {
                Console.WriteLine("TestRSAFromFile failed: {0}", ex);
            }
        }
        public void RSAFromFile()
        {
            byte[] originalValue = new byte[256];
            new System.Random().NextBytes(originalValue);

            for (int i = 0; i < 4; i++)
            {
                DataProtector.DataProtectionScope scope = (i < 2 ? DataProtector.DataProtectionScope.CurrentUser : DataProtector.DataProtectionScope.LocalMachine);
                RSA    rsa       = DataProtector.RSAFromFile(scope);
                byte[] encrypted = rsa.Encrypt(originalValue, RSAEncryptionPadding.Pkcs1);
                byte[] decrypted = rsa.Decrypt(encrypted, RSAEncryptionPadding.Pkcs1);
                Assert.IsTrue(originalValue.SequenceEqual(decrypted));
            }
        }