public void EncValue() { X509Certificate2 auth = p12["authentication"]; string key = p12.Where(e => e.Value.Issuer == auth.Subject).Select(e => e.Key).FirstOrDefault(); X509Certificate2 cert = p12[key]; Assert.IsNotNull(cert); Assert.IsTrue(cert.HasPrivateKey); byte[] data = Encoding.UTF8.GetBytes("My Test"); RSACryptoServiceProvider publicKey = cert.PublicKey.Key as RSACryptoServiceProvider; byte[] enc = publicKey.Encrypt(data, false); Assert.IsNotNull(enc); RSACryptoServiceProvider privateKey = cert.PrivateKey as RSACryptoServiceProvider; Assert.AreEqual("Microsoft Enhanced RSA and AES Cryptographic Provider", privateKey.CspKeyContainerInfo.ProviderName); byte[] data_copy = privateKey.Decrypt(enc, false); Assert.AreEqual(data.Length, data_copy.Length); for (int i = 0; i < data.Length; i++) { Assert.AreEqual(data[i], data_copy[i]); } }
public void RealEncValue() { X509Certificate2 auth = realP12["authentication"]; string key = realP12.Where(e => e.Value.Issuer == auth.Subject).Select(e => e.Key).FirstOrDefault(); X509Certificate2 cert = realP12[key]; Assert.NotNull(cert); Assert.True(cert.HasPrivateKey); byte[] data = Encoding.UTF8.GetBytes("My Test"); RSA publicKey = (RSA)cert.PublicKey.Key; byte[] enc = publicKey.Encrypt(data, RSAEncryptionPadding.Pkcs1); Assert.NotNull(enc); RSA privateKey = (RSA)cert.PrivateKey; byte[] data_copy = privateKey.Decrypt(enc, RSAEncryptionPadding.Pkcs1); Assert.Equal(data.Length, data_copy.Length); for (int i = 0; i < data.Length; i++) { Assert.Equal(data[i], data_copy[i]); } }