Compartilhar via


Sn. exe (ferramenta de nome forte)

A ferramenta Strong Name (sn. exe) ajuda a sign assemblies com nomes fortes. Sn. exe fornece opções para gerenciamento de chaves, geração de assinatura e verificação de assinatura.

A ferramenta Strong Name é instalada automaticamente com o Visual Studio. Para iniciar a ferramenta, use o Prompt de comando Visual Studio.

Observação

Em computadores de 64 bits, execute a versão de 32 bits do sn. exe usando o Prompt de comando Visual Studio e a versão de 64 bits usando o Prompt de comando Visual Studio x64 Win64.

No prompt de comando, digite o seguinte:

sn [-quiet][option [parameter(s)]]

Parâmetros

Opção

Descrição

-c csp

Define o provedor de serviços de criptografia (CSP) padrão a ser usado para assinatura de nome forte. Esta configuração se aplica a todo o computador. Se você não especificar um nome CSP, sn. exe limpa a configuração atual.

-d recipiente

Exclui o recipiente de chave especificado o nome forte CSP.

-D assembly1 assembly2

Verifica-se de que os dois assemblies diferem apenas por assinatura. Isso é freqüentemente usado como uma verificação após um assembly assinado novamente com um par de chaves diferente.

-e assembly outfile

Extrai a chave pública do assembly e as armazena em outfile.

-h

Exibe sintaxe de comando e opções para a ferramenta.

-i infile recipiente

Instala o par de chaves de ArquivoDeEntrada no contêiner de chave especificado. O recipiente de chave reside no nome forte CSP.

-kkeysizeoutfile

Gera um novo RSACryptoServiceProvider chave do tamanho especificado e grava o arquivo especificado. Tanto uma chave pública e privada é gravada no arquivo.

Se você não especificar um tamanho de chave, uma chave de 1.024 bits é gerada por padrão, se você tiver o Microsoft aprimorado cryptographic provider instalado; Caso contrário, será gerada uma chave de 512 bits.

O keysize parâmetro suporta comprimentos de chave de bits 384 16.384 bits em incrementos de 8 bits se você tiver o Microsoft aprimorado cryptographic provider instalado. Ele oferece suporte comprimentos de chave de 384 bits 512 bits em incrementos de 8 bits se você tiver o Microsoft base cryptographic provider instalado.

-m [y|n]

Especifica se os recipientes de chave são específicas do computador ou usuário específico. Se você especificar y, recipientes de chave são específicos do computador. Se você especificar n, recipientes de chave são específicos do usuário.

Se y nem n for especificado, essa opção exibe a configuração atual.

-o ArquivoDeEntradaArquivoDeSaída

Extrai a chave pública da ArquivoDeEntrada e as armazena em um arquivo. csv. Uma vírgula separa cada byte da chave pública. Esse formato é útil para codificar referências a teclas como matrizes inicializados no código-fonte. Se você não especificar um ArquivoDeSaída, essa opção coloca o resultado na área de transferência.

Observação

Essa opção não verifica que a entrada é apenas uma chave pública.Se a infile contém um par de chaves com uma chave particular, a chave particular também é extraída.

-p ArquivoDeEntrada ArquivoDeSaída

Extrai a chave pública do par de chaves em ArquivoDeEntrada e as armazena em ArquivoDeSaída. Esta chave pública pode ser usado para o sinal de atraso de um assembly usando o /delaysign+ e /keyfile opções do O vinculador do Assembly (Al.exe). Quando um assembly é assinado por atraso, somente a chave pública é definida no momento da compilação e espaço reservado no arquivo para a assinatura a ser adicionado mais tarde, quando a chave particular é conhecida.

o pc - recipiente ArquivoDeSaída

Extrai a chave pública do par de chaves em recipiente e as armazena em ArquivoDeSaída.

-Pb [y|n]

Especifica se a política de bypass de nome de alta segurança é aplicada. Se você especificar ye de alta segurança para assemblies de confiança total não são validados quando carregado em uma relação de confiança total de nomes AppDomain. Se você especificar n, nomes fortes são validados para a correção, mas não para um nome forte específico. O StrongNameIdentityPermission não tem efeito sobre assemblies de confiança total. Você deve realizar sua própria seleção para uma correspondência de nome forte.

Se nenhuma das y nem n for especificado, essa opção exibe a configuração atual. O padrão é y.

Observação

Em computadores de 64 bits, você deve definir esse parâmetro em 32 bits e as instâncias de 64 bits do sn. exe.

-quiet

Especifica o modo silencioso; Suprime a exibição de mensagens de sucesso.

-Raassembly infile

Um assembly anteriormente assinado ou assinado em atraso com o par de chaves de re-Signs ArquivoDeEntrada.

Se -Ra é usado, hashes serão recalculados para todos os arquivos no assembly.

O Rc -umo recipiente de assembly

Um assembly anteriormente assinado ou assinado em atraso com o par de chaves de re-Signs recipiente.

Se - rca é usado, hashes serão recalculados para todos os arquivos no assembly.

-Rh assembly

Computa novamente hashes para todos os arquivos no assembly.

-tpinfile

Exibe o token de chave pública são armazenados no ArquivoDeEntrada. O conteúdo de ArquivoDeEntrada deve ser uma chave pública anteriormente gerada a partir de um arquivo par de chaves usando -p. Não use o -t [p opção para extrair o token diretamente de um arquivo par de chaves.

Sn. exe calcula o token usando uma função de hash da chave pública. Para economizar espaço, o common language runtime armazena símbolos de chave pública no manifesto como parte de uma referência a outro assembly quando ele registra uma dependência para um conjunto que possui um nome forte. O - tp opção exibe a chave pública, além de ao token.

Observe que essa opção não verifica a assinatura de assembly e não deve ser usada para tomar decisões de confiança. Esta opção exibe somente os públicos chaves token dados brutos.

-Tpassembly

Exibe o token de chave público para assembly. O assembly deve ser o nome de um arquivo que contém o manifesto do assembly.

Sn. exe calcula o token usando uma função de hash da chave pública. Para economizar espaço, o tempo de execução armazena símbolos de chave pública no manifesto como parte de uma referência a outro assembly quando ele registra uma dependência para um conjunto que possui um nome forte. O - tp opção exibe a chave pública, além de ao token.

Observe que essa opção não verifica a assinatura de assembly e não deve ser usada para tomar decisões de confiança. Esta opção exibe somente os públicos chaves token dados brutos.

-TSassembly infile

Sinais de teste assinado ou assinado parcialmente assembly com o par de chaves em infile.

-TSc assembly container

Sinais de teste assinado ou assinado parcialmente assembly com o par de chaves no recipiente de chave container.

-v assembly

Verifica o nome forte no assembly, onde assembly é o nome de um arquivo que contém o manifesto do assembly.

o FV - assembly

Verifica o nome forte no assembly. Ao contrário do - v opção, -FV força a verificação mesmo se ele está desativado usando o - vr opção.

-Vl

Lista as configurações atuais de verificação de nome de alta segurança neste computador.

-Vr assembly userlist]ArquivoDeEntrada

Registra assembly para verificação ignorando. Opcionalmente, você pode especificar uma lista separada por vírgulas de nomes de usuário. Se você especificar ArquivoDeEntrada, permanecerá de verificação ativada, mas a chave pública no ArquivoDeEntrada é usado em operações de verificação. Assembly pode ser especificado no formulário *, strongname para registrar todos os assemblies com o nome de alta segurança especificado. StrongName deve ser especificado como a seqüência de dígitos hexadecimais representando o formulário editáveis da chave pública. Consulte o -t e -T opções para exibir o token de chave público.

Observação

Use essa opção durante o desenvolvimento.Adicionar um conjunto de módulos à lista de ignorar verificação cria uma vulnerabilidade na segurança.Um assembly mal-intencionado poderia usar o nome de assembly totalmente especificado (nome de assembly, versão, cultura e símbolo de chave pública) do conjunto adicionado à lista de ignorar verificação para forjar sua identidade.Isso permitiria que o conjunto mal-intencionado também ignorasse a verificação.

-Vu assembly

Cancela o registro de assembly para verificação ignorando. As mesmas regras para o assembly de nomeação que se aplicam a - vr se aplicam a - vu.

-Vx

Remove todas as entradas de ignorar a verificação.

-?

Exibe sintaxe de comando e opções para a ferramenta.

Observação

Todas as opções de sn diferenciam maiúsculas de minúsculas e devem ser digitadas exatamente como mostrado para ser reconhecido pela ferramenta.

Comentários

O -R e –Rc as opções são úteis com assemblies que foram assinados em atraso. Nesse cenário, somente a chave pública foi definida no momento da compilação e assinatura é executada mais tarde, quando a chave particular é conhecida.

Observação

Parâmetros (por exemplo, –Vr) que escrever a recursos protegidos, como o registro, execute o sn. exe como um administrador.

Exemplos

O comando a seguir cria um novo par de chaves aleatório e o armazena em keyPair.snk.

sn -k keyPair.snk

O comando a seguir armazena a chave keyPair.snk no recipiente MyContainer o nome forte CSP.

sn -i keyPair.snk MyContainer

O comando a seguir extrai a chave pública do keyPair.snk e as armazena em publicKey.snk.

sn -p keyPair.snk publicKey.snk

O comando a seguir exibe a chave pública e o token de chave pública contida no publicKey.snk.

sn -tp publicKey.snk

O comando a seguir verifica o assembly MyAsm.dll.

sn -v MyAsm.dll

O comando a seguir exclui MyContainer do padrão CSP.

sn -d MyContainer

Consulte também

Referência

AL.exe (do Assembly Linker)

Prompt de comando Visual Studio

Conceitos

Assemblies de nomes fortes

Outros recursos

Ferramentas.NET Framework

Histórico de alterações

Date

History

Motivo

Agosto de 2010

Adicionadas informações sobre como executar a ferramenta em computadores de 64 bits.

Aprimoramento de informações.