У меня возникла проблема с расшифровкой сообщения usgin X.509 Certificate.Расшифровать с помощью PrivateKey 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 был "мойпароль".
Моя проблема в том, когда я хочу расшифровать шифрование сообщения с помощью предыдущего сертификата в C#.
Я нашел этот класс http://blog.shutupandcode.net/?p=660, но в методе X509Decrypt всегда имеет значение PrivateKey.
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)
X509DecryptString(token, @"c:\CA.pvk", "mypassword");
Но есть ВСЕГДА, что PrivateKey свойство равно нулю.
Может ли кто-нибудь вести меня, чтобы расшифровать сообщение, используя файл pvk?
Спасибо,
Хосе
Я был неправ. «mypassword» не был закрытым ключом. Спасибо за ваш комментарий, это было полезно. С новым файлом pfx я могу расшифровать сообщение. – jomarmen