Exemple #1
0
        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]);
            }
        }
Exemple #2
0
        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]);
            }
        }