【发布时间】:2018-07-16 12:52:30
【问题描述】:
我正在使用密钥对签署我的 XML(使用 SignedXml),并将公钥作为嵌入式资源嵌入到我的应用程序中。
我如何创建密钥对
sn -k Warehouse.snk
sn -p Warehouse.snk WarehousePublic.snk
当我尝试阅读 WarehousePublic.snk 时,我得到一个异常 Bad Version of provider.
这是我的代码:
using (Stream stream = assembly.GetManifestResourceStream("WareApp.Resources.WarehousePublic.snk"))
{
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.ImportCspBlob(bytes); //the exception occurred here
...
...
...
}
}
有没有办法仅从公钥创建 RSACryptoServiceProvider?
我也尝试过使用 X509Certificate2
X509Certificate2 cert = new X509Certificate2(bytes); //I got exception here
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert2.PublicKey.Key;
但我得到异常找不到请求的对象。
有什么想法吗?
谢谢
【问题讨论】:
标签: c# public-key strongname rsacryptoserviceprovider strong-named-key