C#CX509私钥格式

C#CX509私钥格式,c#,cryptography,pki,C#,Cryptography,Pki,我正在尝试重新使用为创建PKCS10证书签名请求而生成的密钥对,但我无法确定此私钥的格式 要创建密钥,我使用的是CERTENROLLLib CX509PrivateKey类 我已经将私钥提供程序类型设置为XCV\u PROV\u RSA\u FULL,当我导出它时(试图弄清楚它是什么格式),我会使用它 当我导出它时,私钥总是以“BwIAAACkAABSU0E” 有人知道这是什么格式吗?我认为ANS.1 DER编码总是以“MII”之类的开头。我想我回答了我自己的问题: 命令 Export("PRI

我正在尝试重新使用为创建
PKCS10
证书签名请求而生成的密钥对,但我无法确定此私钥的格式

要创建密钥,我使用的是
CERTENROLLLib CX509PrivateKey

我已经将私钥提供程序类型设置为
XCV\u PROV\u RSA\u FULL
,当我导出它时(试图弄清楚它是什么格式),我会使用它

当我导出它时,私钥总是以
“BwIAAACkAABSU0E”


有人知道这是什么格式吗?我认为ANS.1 DER编码总是以“MII”之类的开头。

我想我回答了我自己的问题:

命令

Export("PRIVATEBLOB", EncodingType.XCN_CRYPT_STRING_BASE64)
将私钥导出为BASE64编码的CSP blob。为了使用C#RSA库导入,我必须使用以下工具:

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] CryptoKey = Convert.FromBase64String(base64CspBlob);
rsa.ImportCspBlob(CryptoKey);

成功了

谢谢你的回复。我猜了很多,但我没能测试,时间不够了。糟糕的API文档,很高兴你找到了它。
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] CryptoKey = Convert.FromBase64String(base64CspBlob);
rsa.ImportCspBlob(CryptoKey);