厳密な名前の 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...」があります。それらをどのように区別しますか?