2012-05-11 21 views
8

私は、ソフトウェアビルドプロセスで使用するアセンブリ情報アプリケーションを作成しており、署名された.NETアセンブリからデジタル署名情報を読み取ろうとしています。署名された.Netアセンブリからデジタル署名情報を読み取るにはどうすればよいですか?

署名済みのアセンブリを右クリックし、[デジタル署名]タブを選択して[詳細]ボタンをクリックすると、Windowsエクスプローラの機能をC#コードで実行できます。例えば

Windows 7 Explorer can do by right-clicking file properties

Digital signature details

誰もがC#でプログラム的にこれを行う方法のアイデアを持っていますか?現在、Mono Cecil libraryを使用して、残りの情報をアセンブリから取得しています。あなたの助けが最も高く評価されます。

+1

あなたが示すのは、すべてのPEファイルに適用可能な、「Authenticode」署名です。また、.NET固有の署名形式である 'strongnaming'も存在します。厳密な名前付けは、証明書ではなくキーペアを使用して行われるため、名前のついたアセンブリから有用な情報を抽出することはできません。 StackOverflowで 'Authenticode'を検索すると便利な情報がたくさん得られます。 –

+1

[可能性](http://stackoverflow.com/questions/301024/validate-authenticode-signature-on-exe-c-without-capicom)[関連](http://stackoverflow.com/questions/3281057/get -timestamp-from-authenticode-signed-files-in-net)の質問です。 – shambulator

+1

の可能な複製[どのように私は署名されたC#exeから公開鍵を読むのですか](http://stackoverflow.com/questions/3722610/how-do-i-read-the-public-key-from-a-signed -c-sharp-exe) –

答えて

5

Monoプロジェクトは、signcodechktrustのソースコードを提供しています。これらのソースコードは、独自のアプリケーション(オープンソースのMIT X11ライセンス)で再利用できます。

両方ともMono.Security.dllアセンブリ(LinuxおよびOSXだけでなくWindowsでも動作します)を使用し、かなりcomplete Authenticode supportを含みます。

関連する問題