Compartilhar via


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")];

Consulte também

Conceitos

Criando e usando Assemblies de Nome Forte