使用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)
{
//加载证书并解密指定的数据
使用(var ss = new System.Security.SecureString())
{
foreach(密码中的var keyChar.ToCharArray())
ss.AppendChar(keyChar);
//加载受密码保护的证书文件
X509Certificate2 cert = new X509Certificate2(certificateFile,ss);
使用(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文件解密消息吗?
谢谢,
何塞
没有找到相关结果
已邀请:
2 个回复
目浆搽
只包含证书),
几乎肯定不会起作用。
原则上可以工作,但你从它创建一个
对象,它仍然需要证书和私钥。您应该能够从PKCS#12容器(.p12 / .pfx)加载它。 要创建此容器,您可以使用
:
(如果未指定
,它将启动交互式界面,在这种情况下,您需要勾选该框以导出私钥。) 然后,尝试使用该pfx / p12文件进行解密。
慰泥悍瓶