我正在使用密钥对签署我的 XML(使用 SignedXml),并将公钥作为嵌入式资源嵌入到我的应用程序中。
在这里我如何创建密钥对
sn -k Warehouse.snk
sn -p Warehouse.snk WarehousePublic.snk
当我尝试阅读时,WarehousePublic.snk
我得到一个异常错误版本的提供程序。
这是我的代码:
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;
但我得到异常找不到请求的对象。
任何想法?
谢谢