2011-10-28 8 views
2

現在、証明書の使用を学習していますが、X509Certificate2インスタンスからASN.1表記証明書を取得することが可能な場合、私は不思議です。証明書をX509Certificate2からasn.1表記でエクスポートします。

私はExport -Methodを見つけましたが、うまくいきますが、出力フォーマットのエンコーディングを変更する可能性はありませんでした。これはDER形式でしかありません。

以下の例のように、ASCIIのASN.1の証明書としてロードされた証明書を変換/何かをエクスポートする可能性がある:

Certificate: 
    Data: 
     Version: 3 (0x2) 
     Serial Number: 1 (0x1) 
     Signature Algorithm: md5WithRSAEncryption 
     Issuer: C=XY.... 
... 

がまたはプレーンテキストにDERを変換するコンバータはありますか?

答えて

2

私は数年前にこれを行うためにGtk#ツール(C#で)を書いていました。完全なソースコードはhttps://github.com/mono/mono-tools/tree/master/asn1view

common/PrettyPrinter.cscommon/ASN1Decoder.csとする必要があります.OIDの名前がわからない場合は、ほんの少しだけ必要です。

EDIT:上記のX.509証明書よりも少し低いレベルである - しかし、それはあなたが知っている(またはしない)X.509のCRLおよび他の構造のために働くの証明書/ CRLに埋め込むことができます。

+0

+1素晴らしい!ありがとうございました! OidCacheクラスの一般的なOIDをすでに定義しているコードブロックがありますか? – HCL

+0

いいえ、完全にオンデマンドでした。つまり、必要に応じて取得/キャッシュされました。 OTOHでは、いくつかの証明書でそのコードを実行してプリキャッシュを構築し、これをデフォルトとして出荷することができます。 – poupou

2

あなたは.Net内でこれを行う必要があるかどうかによって、this answeropenssl asn1parse、エクスポートしたDERファイルを使用)に興味があるかもしれません。

.Netでこれを行う必要がある場合は、BouncyCastleを使用できるはずです。

+2

「openssl x509 -text -noout -in 」は、彼が望むものですか? –

+0

+1ありがとうございました。 – HCL

+2

@GregS - これは素晴らしいことでしたが、私は '-inform DER'も追加しなければなりませんでした。あなたは答えとしてそれを置くべきです! – Despertar

関連する問題