我在解密消息时遇到问题 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 是“我的密码”。
我的问题是当我想解密用 c# 中以前的证书加密的消息时。
我找到了这个类http://blog.shutupandcode.net/?p=660,但在X509Decrypt方法中,PrivateKey 始终为空。
public static byte[] X509Decrypt(byte[] data, string certificateFile, string password) { // 加载证书并解密指定数据 使用 (var ss = new System.Security.SecureString()) { foreach (var keyChar in password.ToCharArray()) ss.AppendChar(keyChar); // 加载受密码保护的证书文件 X509Certificate2 证书 = 新 X509Certificate2(certificateFile, ss); 使用 (RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey) { 返回 rsa.Decrypt(数据,真); } } }
我尝试通过证书文件(.cer)
X509DecryptString(token, @"c:\CA.cer", "mypassword");
并传递 pvk 文件 (.pvk)
X509DecryptString(token, @"c:\CA.pvk", "mypassword");
但总是有 PrivateKey 属性为空。
谁能指导我使用 pvk 文件解密消息?
谢谢,
何塞