У меня проблема с расшифровкой сообщения usgin X.509 Certificate.
Я создаю свой сертификат с помощью 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