Como: Criar um par de chaves pública/particular
Para assinar um conjunto com nome de alta segurança, você deve ter um par de chaves públicas/privadas. Esta par de chaves criptografadas públicas e particulares é usado durante a compilação para criar um conjunto de módulos (assembly) de nome de alta segurança. Você pode criar um par de chaves usando a Strong Name tool (Sn.exe). Arquivos de par de chaves geralmente têm extensão .snk.
Observação
Em Visual Studio, as páginas de propriedades C# e Visual Basic do projeto incluem um assinatura guia permite que você selecione arquivos de chave existentes ou gerar novos arquivos de chave sem usar sn. exe.No Visual C++, você pode especificar o local de um arquivo de chave existente no Avançado página de propriedade no vinculador seção a Propriedades de configuração seção a Property Pages janela.O uso de AssemblyKeyFileAttribute atributo para identificar os pares de chave de arquivo ficou obsoleto começando com Visual Studio 2005.
Para criar um par de chaves
No prompt de comando, digite o seguinte comando:
sn –k < nome de arquivo >
Neste comando, nome de arquivo é o nome de arquivo de saída que contém o par de chaves.
O exemplo a seguir cria um chamado um par de chaves denominado sgKey.snk.
sn -k sgKey.snk
Se você pretende assinar com atraso um conjunto de módulos (assembly) e você controla o par de chaves inteiro (o que é improvável de acontecer fora de testes), você pode usar os seguintes comandos para gerar um par de chaves e, em seguida, extrair a chave pública a partir dele em um arquivo separado. Primeiro, crie um par de chaves:
sn -k keypair.snk
- Em seguida, extraia a chave pública do par de chaves e o copie para um arquivo separado:
sn -p keypair.snk public.snk
- Depois de criar o par de chaves, você deve colocar o arquivo onde as ferramentas de assinatura de nome de alta segurança poderão encontrá-lo.
Ao assinar um assembly com um nome forte o Vinculador de Assembly (Al.exe) procura pelo arquivo de chave relativo ao diretório atual e ao diretório de saída. Ao usar compiladores de linha de comando, você pode simplesmente copiar a chave para a pasta atual, que contém seus módulos de código.
Se você está usando uma versão anterior do Visual Studio que não possui uma guia Signing nas propriedades do projeto, a localização recomendade do arquivo de chave é o diretório do projeto os atributos de arquivo especificados da seguinte maneira:
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
[assembly:AssemblyKeyFileAttribute("keyfile.snk")];