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)); } }