C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: VB.NETでの電子証明書(PKCS#12)の解析方法


(過去ログ 102 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■60842 / inTopicNo.1)  VB.NETでの電子証明書(PKCS#12)の解析方法
  
□投稿者/ Rio (7回)-(2011/07/20(Wed) 21:11:19)

分類:[VB.NET/VB2005 以降] 

お世話になっております。

VB2008で電子証明書(PKCS#12)の解析を行いたと思っております。
しかし、取得したいデータが取得できずに困っているため質問させていただきました。

電子証明書を読み込む際に、X509Certificate2クラスを使い読み込むことで
電子証明書の持つデータを取得できるようなので、下記のようなコーディングをしました。

Dim Certificate As New Security.Cryptography.X509Certificates.X509Certificate2(FileName, Password)

ここで、Certificate変数を見ると秘密鍵や公開鍵といったデータが抜き出せると思うのですが、
会社の「商号」「本店」「代表者氏名」などのデータを取得することができませんでした。

MSDNでX509Certificate2クラスを調べると、
RawDataというメンバが証明書の生データを持っていると記述されていますが、
ただの数値が入っているだけで(なにかの暗号化?)欲しいデータを取得することが出来ませんでした。

どのようにすれば上記のような欲しいデータを取得することができるのでしょうか?
もしくは、この方法以外に電子証明書(PKCS#12)の解析を行うことができるのでしょうか?

よろしくお願いいたします。
引用返信 編集キー/
■60850 / inTopicNo.2)  Re[1]: VB.NETでの電子証明書(PKCS#12)の解析方法
□投稿者/ 魔界の仮面弁士 (2265回)-(2011/07/21(Thu) 10:39:55)
No60842 (Rio さん) に返信
> VB2008で電子証明書(PKCS#12)の解析を行いたと思っております。
> しかし、取得したいデータが取得できずに困っているため質問させていただきました。

証明書関係のコーディング経験は皆無なので、お役に立てるかどうかは分かりませんが:


> 会社の「商号」「本店」「代表者氏名」などのデータを取得することができませんでした。

手元にある .pfx には、「商号」「本店」「代表者氏名」などのデータは
含まれていないのですが、これは X509 拡張機能でしょうか?

X509 拡張機能だとしたら、Extensions プロパティで得られます。

certmgr.msc などから証明書の内容を確認した時に、証明書ダイアログの
[詳細]タブで『拡張機能のみ』で表示される内容にあたります。


もしも、取得したい内容が上記内容に含まれるものであれば、
Extensions プロパティで列挙された X509Extension クラスに対して、
 Oid As Oid         …  オブジェクト識別子
 RawData As Byte()  …  生データ
を使って取得する事になります。


> ただの数値が入っているだけで(なにかの暗号化?)欲しいデータを取得することが出来ませんでした。
RawData のフォーマットは Oid によって異なります。

ただ、生データを直接読むのは大変でしょうから、Extensions プロパティを
X509Extension の派生クラスにキャストして読み取ると良いでしょう。

とはいえ、派生クラスが用意されていないエントリーに対しては、
RawData のバイナリを自前で解析することになるかと思います。


  For Each ext As X509Extension In Certificate.Extensions

      Console.WriteLine("{0}='{1}'", ext.Oid.FriendlyName, ext.Oid.Value)
      Console.WriteLine(vbTab & ext.GetType().FullName)
      Console.WriteLine(vbTab & BitConverter.ToString(ext.RawData))

  Next

引用返信 編集キー/
■60910 / inTopicNo.3)  Re[2]: VB.NETでの電子証明書(PKCS#12)の解析方法
□投稿者/ Rio (8回)-(2011/07/25(Mon) 00:49:21)
魔界の仮面弁士さん

ここ数日、電子証明書について学ばせていただいたのですが、
魔界の仮面弁士さんのおっしゃるとおり、
私が求めていたのは、X509の拡張機能でしたので、Extensionsプロパティを用い得ることができました。

こんなに詳しくアドバイスをしてくださり
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -