Расшифровать с помощью сертификата PrivateKey X.509

У меня проблема с расшифровкой сообщения usgin X. Сертификат 509.

Я генерирую свой сертификат с помощью makecert со следующими параметрами:

makecert -r -pe -n "CN=MyCertificate" -ss CA -sr CurrentUser -a sha1 -sky signature -cy authority -sv CA.pvk CA.cer

И PrivateKey был «mypassword».

Моя проблема заключается в том, что я хочу расшифровать сообщение, зашифрованное с помощью предыдущего сертификата в C #.

Я нашел этот класс http://blog.shutupandcode.net/?p=660 , но в методе X509Decrypt всегда PrivateKey имеет значение null.

public static byte[] X509Decrypt(byte[] data, string certificateFile, string password)
{
    // load the certificate and decrypt the specified data
    using (var ss = new System.Security.SecureString())
    {
        foreach (var keyChar in password.ToCharArray())
            ss.AppendChar(keyChar);

        // load the password protected certificate file
        X509Certificate2 cert = new X509Certificate2(certificateFile, ss);

        using (RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey)
        {
            return rsa.Decrypt(data, true);
        }    
    }
}

Я попытался передать сертификат файл (.cer)

X509DecryptString(token, @"c:\CA.cer", "mypassword");

И передача файла pvk (. pvk)

X509DecryptString(token, @"c:\CA.pvk", "mypassword");

Но всегда свойство PrivateKey имеет значение null.

Может ли кто-нибудь помочь мне расшифровать сообщение с помощью файла pvk?

Спасибо,

Jose

7
задан jomarmen 4 November 2010 в 14:14
поделиться