2017-05-30 150 views
0

我想與RSA.SignHash()簽署一些數據。 我在Linux OpenSSL中通過以下命令創建了一個RSA私鑰文件。無法加載從RSA私鑰文件的私鑰在C#

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

其對PEM格式這是問題,請參見:如何從PEM私鑰文件?(https://stackoverflow.com/questions/7400500/how-to-get-private-key-from- pem-file) –

+0

尊敬的@AlexK。和西蒙妮Cifani,我試過其他文章(https://stackoverflow.com/questions/7400500/how-to-get-private-key-from-pem-file)。同樣的例外。我沒有任何證書。我有一個私鑰。 –

+0

只是說明顯而易見:一把鑰匙不是證書。嘗試將私鑰加載到證書對象是沒有意義的。 – jww

回答

1

沒有,就沒有友好的方式來做到這一點無需第三方工具。如果你只有私鑰然後恕我直言new X509Certificate2(keyFilePath)沒有意義。

你可以做的是實現(或使用一個庫)來解析私鑰。然後將解析的私鑰參數編碼爲可以使用RSA.FromXmlString導入的xml結構。