13

厳密な名前の CSP (暗号化サービス プロバイダー) ですべてのコンテナー名を (可能であれば) 列挙する方法に関する情報を探しています。

基本的に、入力するsn.exe -i key.snk MyContainerNameと、公開鍵と秘密鍵のペアが「コンテナー」と呼ばれるものに格納されます。後で、コード内で、コンテナ名を で指定できますAssemblyKeyNameAttribute。例:

[assembly: AssemblyKeyName("MyContainerName")]

これにより、コンパイル時にアセンブリが署名されます。

どういうわけかすべてのコンテナ名を列挙できるかどうかを調べようとしています。属性のコード補完を提供するReSharperのプラグインを作成していInternalsVisibleToます。また、属性のコード補完を提供したいと思いAssemblyKeyNameます。ここで、リストに既知のコンテナー名を事前に入力します。

この情報はアクセス可能ですか?

編集: IT Security StackExchange でのこの質問に関するコメントから、KeyPalという小さなユーティリティへのリンクがあります。このユーティリティを実行するLMと、ローカル マシンのキー ストアがダンプされます。

--------- KeyPal:  MACHINE store: 3 keycontainers ---------
[0] VS_KEY_F726FDF898BC4CB8
     Signature 1024
[1] IIS Express Development Certificate Container
     Exchange  1024
     CertE: CN=localhost
[2] MyContainerName
     Signature 1024
-------------------------------------------------

[0] と [2] の両方が で使用できる有効なコンテナー名であることがわかりますAssemblyKeyName。ただし、有効なコンテナではない [1] の「IIS Express...」があります。それらをどのように区別しますか?

4

1 に答える 1