Enumerando nomes de contêiner do nome forte CSP

Eu estou tentando encontrar algumas informações sobre como (se possível) enumerar todos os nomes de contêiner no CSP de nome forte (provedor de serviços de criptografia).

Essencialmente, quando você digitasn.exe -i key.snk MyContainerName, os pares de chaves pública e privada são armazenados no que é chamado de "contêiner". Mais tarde, dentro do seu código, você poderia especificar o nome do contêiner noAssemblyKeyNameAttribute, por exemplo.:

[assembly: AssemblyKeyName("MyContainerName")]

Isso fará com que o assembly seja assinado em tempo de compilação.

Eu estou tentando descobrir se é possível enumerar de alguma forma todos os nomes de contêineres. Estou escrevendo umplugin para ReSharper que fornece o preenchimento de código para oInternalsVisibleTo atributo. Eu também gostaria de fornecer a conclusão de código para oAssemblyKeyName attribute, onde eu preencheria previamente a lista com nomes de contêiner conhecidos.

Esta informação é acessível?

EDITAR: De um comentário sobreessa questão no IT Security StackExchange, há um link para um pequeno utilitário chamadoKeyPal. Executando este utilitário comLM irá descarregar o armazenamento de chaves da máquina local:

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

Onde eu posso ver que ambos [0] e [2] são nomes de contêiner válidos para usar comAssemblyKeyName. No entanto, existe o [1] one - "IIS Express ...", que não é um contêiner válido. Como faço para distinguir entre eles?

questionAnswers(1)

yourAnswerToTheQuestion