6

C#のみを使用して、RSAキーペアを生成し、それをDKIMのPEMのようなフォーマットと互換性のあるASN1フォーマットにエクスポートすることは可能ですか?

サードパーティへの依存を減らしたいのですが、私が見つけたものをいくつか紹介します

弾む城

暗号化アプリケーション ブロック

Win32 PFXImportCertStore

PEM のインポート

Microsoft の CLR セキュリティの強化

マイクロソフト CNG

コードプレックス (上記) で .NET dll を使用した Microsoft CNG プロバイダーのコードを次に示します...ただし、公開キーと秘密キーの両方をDKIM 互換の ASN1 形式でエクスポートおよびインポートする方法がわかりません。

     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 形式でエクスポート/インポートする方法を示す Microsoft のライブラリ (Win32、PFX、または Codeplex 上の CLR) を使用する直接的な例はありますか?

4

1 に答える 1