我想用RSA.SignHash()
签名一些数据。
我在Linux OpenSSL中通过以下命令创建了一个RSA私钥文件。
openssl genrsa -out private_key.pem 1024
但是当我想通过X509Certificate2
的对象加载此密钥时,请获取“找不到请求的对象”。例外。
这是我的代码:
string keyFilePath = @"C:\Keys\private_key.pem";
X509Certificate2 cert = new X509Certificate2(keyFilePath);
我已经使用了Chilkat
库并且一切正常,但是Microsoft
没有任何步行但没有任何第三方工具接近它?
这是我的pem文件内容:
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC23ivEPgSqxCcSTNUY8IbjCO0+0FwarI/azCHp97cWCBaosFAe
mN9eI7u3agv2tCk+QrKrFDlkYWskFiADm55NMvDE1fuyy7db84MMh+GFcyemYZ0o
yG5oBYPw7aNY7N7fBO5pbF9M/v4TMjKoxYGxk2kl58KT9cmvVH7TaF8xkwIDAQAB
AoGAfVzRpDbf/DF8l48Uh4Rc9EeqXOV6Ps8Nz3EhzsODQBdLcVltk4w5lM/qYFLS
4M2heI1A7wduUOJ4EMUaLV8BpcFkA2kSPah48R/1EGAMOpaD09j8qHJLCHJ2uiSc
Hqi6z/6GhpSLzU5XR1lj0UIPy9aC9X0yPAao0WZ+5YgTdAECQQDoCwCmFD5r00Y0
DcQGbAU/eekHJwNk48ACvIDquK/ysqA8aXvWgyXd3oa82fUSvSAMDGNFYr9xOxqF
Vnnsi6VXAkEAyb9yymbehjwwl33CjPcsIRbjetLDwPgWhVYii4q7jELlefyC8mHL
cpn0ejS4ln/uTUuNZCdYNHvYjQ8eXfaUJQJADfM7YsCs0AavncmGE2zDFAHcRJXP
2mzmykNS7MmVql2azIb67vaLfD84knn4Bdxg5NiJz04UfFY1TfbY9aOfmQJBAJGX
jsCQMiBPSYXZ5M+UBI2wleNqPIiCwMXinjVzndsf37kDyIAgoRCIGA0lBNzfX9r6
HgRb/GSLx4Asm+6VZt0CQQC2DwtG+CKDyqEvhIGqlrAuQivMLJExZZV3kjsFSWOA
CZFSr8JsSghb3bbxYexkzbWfalESYRkqu+zNWDPs9gpt
-----END RSA PRIVATE KEY-----
答案 0 :(得分:1)
不,没有第三方工具就没有友好的方法。如果你只有私钥,那么恕我直言new X509Certificate2(keyFilePath)
没有意义。
您可以做的是实现(或使用库)来解析私钥。然后将解析后的私钥参数编码为可以使用RSA.FromXmlString导入的xml结构。