4
是否可以生成RSA密钥对,将其导出为与DKIM's PEM-like format兼容的ASN1格式,仅使用C# ?使用CngKey使用C#生成与PEM(DKIM兼容)中的RSA密钥对...类似于“openssl rsa”
我想,以减少对第三方的依赖我的,但这里有一些我发现
充气城堡
加密应用程序块
的Win32 PFXImportCertStore
- http://msdn.microsoft.com/en-us/library/aa387314(v=vs.85).aspx
- http://msdn.microsoft.com/en-us/library/aa387313(v=vs.85)
导入PEM
- 此代码只导入PEM数据,但是从OpenSSL的不同,它修复了.NET 4.0和前导零的问题的关键http://www.codeproject.com/Articles/162194/Certificates-to-DB-and-Back
微软CLR安全性增强
微软CNG
下面是用在CodePlex上(上图)的.NET的DLL微软CNG供应商代码...但我不知道如何导出和导入DKIM compatible ASN1 format中的公钥和私钥。
byte[] pkcs8PrivateKey = null;
byte[] signedData = null;
CngKey key = CngKey.Create(CngAlgorithm2.Rsa);
byte[] exportedPrivateBytes = key.Export(CngKeyBlobFormat.GenericPrivateBlob);
string exportedPrivateString= Encoding.UTF8.GetString(exportedPrivateBytes);
pkcs8PrivateKey = Encoding.UTF8.GetBytes(exportedPrivateString);
using (CngKey signingKey = CngKey.Import(pkcs8PrivateKey, CngKeyBlobFormat.Pkcs8PrivateBlob))
{
using (RSACng rsa = new RSACng(signingKey))
{
rsa.SignatureHashAlgorithm = CngAlgorithm.Sha1;
signedData = rsa.SignData(dataToSign);
}
}
问题
是否有使用说明如何创建一个密钥对,并导出/导入PEM格式的值微软的库(Win32的,PFX,或在Codeplex CLR)的任何直接的例子?
PEM并非真正的格式,因此您需要更具体地说明您为什么要使用'PEM格式',以及您希望与之互操作的内容。 –
@GregS我更新的问题。我需要与存储在DNS中的DKIM条目兼容的ASN1格式 – LamonteCristo
这看起来像是对您的问题的回答: http://blogs.msdn.com/b/dcook/archive/2008/11/25/creating-a -self签名证书功能于c.aspx – glagolig