2011-10-23 5 views
4

X509CertificateのASN.1で符号化された秘密鍵をC#コードを使用してBase64形式に変換する方法はありますか?asn1からbase64をC#で変換する

+4

現在あなたは何を持っていますか?生のバイナリ? infoset xmlの? –

+0

@Marc Gravell:XmlStringとrawバイトの両方。ありがとう。 –

答えて

2

第2の考えでは、おそらく最初の答えであなたの質問を理解できませんでした。 重要なデータを.pemファイルに似た形式に変換する場合は、このようなことを行う必要があります。article about generating .pem files

2

あなたは一緒に X509Certificate2.PrivateKey PropertyRSA.FromXmlString Methodを組み合わせてみてください。

ASN.1のデータをRSA.FromXmlStringでロードし、その結果のRSAオブジェクトにX509Certificate2.PrivateKeyプロパティを設定できると思います。その後、X509Certificate2のExport()メソッドの1つを使用してキーをエクスポートできます。

ASN.1 DERエンコードキーをBase64(.pem)形式に変換するだけであれば、バイナリバイト配列をBase64(System.Convert.ToBase64String())でエンコードし、header/footerを結果:

 
-----BEGIN RSA PRIVATE KEY----- 
encoded key data goes here 
-----END RSA PRIVATE KEY----- 
+0

はい、私はこれについて知っていましたが、Export()関数は証明書全体をエクスポートします。私は秘密鍵のみが必要です。 –

+0

私は、プライベートキーのバイト配列を持っていれば、それをbase64(おそらくSystem.Convert.ToBase64String()で)にエンコードして、ヘッダーとフッターを追加する必要があると思います。 – PiRX

関連する問題