|
■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
|