Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido manualmente. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Sn.exe (Ferramenta de Nome Forte)

A ferramenta Nome Forte (Sn.exe) assina assemblies com nomes fortes. Sn.exe oferece opções para o gerenciamento de chaves, geração de assinaturas e verificação de assinaturas.

A ferramenta Nome Forte é instalada automaticamente com o Visual Studio. Para iniciar a ferramenta, use o Prompt de comando do Visual Studio.

Observação Observação

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

Essa ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, use o Prompt de Comando do Desenvolvedor (ou o Prompt de Comando do Visual Studio no Windows 7). Para obter mais informações, consulte Prompt de comando do Visual Studio.

No prompt de comando, digite o seguinte:

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

OPTION

Descrição

-a identityKeyPairFile signaturePublicKeyFile

Gera dados AssemblySignatureKeyAttribute para migrar a chave de identidade para a chave de assinatura de um arquivo.

-ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile

Gera dados AssemblySignatureKeyAttribute para migrar a chave de identidade para a chave de assinatura de um contêiner de chave.

-c [csp]

Define o provedor de serviços de criptografia (CSP) padrão a ser usado na assinatura de nome forte. Essa configuração se aplica a todo o computador. Se você não especificar um nome CSP, Sn.exe limpará a configuração atual.

-d container

Exclui o contêiner de chave especificado do CSP de nome forte.

-D assembly1 assembly2

Verifica se dois assemblies são diferentes apenas na assinatura. Isso costuma ser usado como uma verificação após um assembly ser assinado novamente com um par de chaves diferente.

-e assembly outfile

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

-h

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

-i infile container

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

-k [keysize] outfile

Gera uma nova chave RSACryptoServiceProvider com o tamanho especificado e o grava no arquivo especificado. As chaves pública e privada são gravadas no arquivo.

Se não especificar um tamanho de chave, uma chave 1.024 bits será gerada por padrão se você tiver o provedor criptográfico aprimorado da Microsoft instalado; do contrário, uma chave de 512 bits será gerada.

O parâmetro keysize dá suporte a tamanhos de chave de 384 a 16.384 bits em incrementos de 8 bits se você tiver o provedor criptográfico aprimorado da Microsoft instalado. Ele dá suporte a tamanhos de chave de 384 a 512 bits em incrementos de 8 bits se você tiver o provedor criptográfico de base da Microsoft instalado.

-m [y | n]

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

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

-o infile [outfile]

Extrai a chave pública do infile e a armazena em um arquivo .csv. Uma vírgula separa cada byte da chave pública. Esse formato é útil para referências codificadas para chaves como matrizes inicializadas no código-fonte. Se você não especificar um outfile, essa opção colocará a saída na Área de Transferência.

Observação Observação
Essa opção não verifica se a entrada é somente uma chave pública. Se o infile contiver um par de chaves com uma chave privada, a chave privada também será extraída.

-p infile outfile [hashalg]

Extrai a chave pública do par de chaves em infile e a armazena em outfile. Como opção, usando o algoritmo RSA especificado por hashalg. Essa chave pública pode ser usada para assinar com atraso um assembly usando as opções /delaysign+ e /keyfile de Assembly Linker (Al.exe). Quando um assembly é assinado com atraso, somente a chave pública é definida no tempo de compilação e o espaço é reservado no arquivo para a assinatura a ser adicionada posteriormente, quando o chave privada será conhecida.

-pc container outfile [hashalg]

Extrai a chave pública do par de chaves em container e a armazena em outfile. Se você usar a opção hashalg, o algoritmo RSA será usado para extrair a chave pública.

-Pb [y | n]

Especifica se a política de bypass de nome forte é imposta. Se você especificar y, os nomes fortes de assemblies de confiança total não serão validados em um AppDomain de confiança total. Se você especificar n, a correção dos nomes fortes será validada, 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 verificação de uma correspondência de nome forte.

Se nem y nem n for especificado, essa opção exibirá a configuração atual. O padrão é y.

Observação Observação
Em computadores 64 bits, você deve definir esse parâmetro nas instâncias de 32 e 64 bits de Sn.exe.

-q[uiet]

Especifica o modo silencioso; suprime a exibição de mensagens com êxito.

-R[aassembly infile

Assina novamente um assembly assinado anteriormente ou com atraso usando o par de chaves em infile.

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

-Rc[aassembly container

Assina novamente um assembly assinado anteriormente ou com atraso usando o par de chaves em container.

Se -Rca for usado, os hashes serão recomputados para todos os arquivos no assembly.

-Rh assembly

Recomputa hashes para todos os arquivos no assembly.

-t[p] infile

Exibe o token da chave pública armazenada em infile. O conteúdo de infile deve ser uma chave pública gerada anteriormente com base em um arquivo de par de chaves usando-se -p. Não use a opção -t[p] para extrair o token diretamente de um arquivo de par de chaves.

Sn.exe computa o token usando uma função de hash da chave pública. Para economizar espaço, o Common Language Runtime armazena tokens de chave pública no manifesto como parte de uma referência a outro assembly quando registra uma dependência para um assembly com um nome forte. A opção -tp exibe a chave pública além do token. Se o atributo AssemblySignatureKeyAttribute tiver sido aplicado ao assembly, o token será para a chave de identidade, e o nome do algoritmo de hash e a chave de identidade será exibida.

Essa opção não verifica a assinatura do assembly e não deve ser usada para tomar decisões de confiança. Essa opção exibe apenas os dados brutos do token de chave pública.

-T[p] assembly

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

Sn.exe computa o token usando uma função de hash da chave pública. Para economizar espaço, o tempo de execução armazena tokens de chave pública no manifesto como parte de uma referência a outro assembly quando registra uma dependência para um assembly com um nome forte. A opção -Tp exibe a chave pública além do token. Se o atributo AssemblySignatureKeyAttribute tiver sido aplicado ao assembly, o token será para a chave de identidade, e o nome do algoritmo de hash e a chave de identidade será exibida.

Essa opção não verifica a assinatura do assembly e não deve ser usada para tomar decisões de confiança. Essa opção exibe apenas os dados brutos do token de chave pública.

-TS assembly infile

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

-TScassemblycontainer

Assina o assembly assinado ou parcialmente assinado com o par de chaves no contêiner de chave container.

-v assembly

Verifica o nome forte em assembly, em que assembly é o nome de um arquivo que contém um manifesto de assembly.

-vf assembly

Verifica o nome forte em assembly. Diferentemente da opção -v, -vf força a verificação, mesmo que seja desabilitada usando-se a opção -Vr.

-Vk regfile.reg assembly [userlist] [infile]

Cria as entradas de um arquivo de registro (.reg) que é possível usar para registrar o assembly especificado ignorar a verificação. As regras de nomenclatura do assembly que se aplicam à opção -Vr se aplicam também a –Vk. Para obter informações sobre as opções userlist e infile, consulte a opção –Vr.

-Vl

Lista as configurações atuais da verificação de nome forte neste computador.

-Vr assembly [userlist] [infile]

Registra assembly para ignorar a verificação. Também é possível especificar uma lista separada por vírgulas de nomes de usuário a que a verificação para ignorar deve ser aplicada. Se você especificar infile, a verificação permanecerá habilitada, mas a chave pública em infile será usada em operações de verificação. É possível especificar assembly na forma *, strongname para registrar todos os assemblies com o nome forte especificado. Para strongname, especifique a cadeia de caracteres de dígitos hexadecimais que representam o formulário indexado da chave pública. Consulte as opções -t e -T para exibir o token de chave pública.

Observação de cuidado Cuidado
Use essa opção somente durante o desenvolvimento. A adição de um conjunto à lista de verificação para ignorar cria uma vulnerabilidade de segurança. Um assembly mal-intencionado pode usar o nome do assembly totalmente especificado (nome de assembly, versão, cultura e token de chave pública) do assembly adicionado à lista de verificação para forjar sua identidade. Isso permitiria que o assembly mal-intencionado também ignorasse a verificação.

-Vu assembly

Cancela o registro de assembly para ignorar a verificação. As mesmas regras de nomenclatura do assembly que se aplicam a -Vr se aplicam a -Vu.

-Vx

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

-?

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

Observação Observação

Todas as opções de Sn.exe diferenciam maiúsculas de minúsculas e devem ser digitadas exatamente conforme mostrado para serem reconhecidas pela ferramenta.

As opções -R e –Rc são úteis com assemblies assinados com atraso. Nesse cenário, apenas a chave pública foi definida no tempo de compilação e a assinatura será realizada posteriormente, quando a chave privada será conhecida.

Observação Observação

Para parâmetros (por exemplo, –Vr) gravados em recursos protegidos como, por exemplo, o Registro, execute SN.exe como um administrador.

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 em keyPair.snk no contêiner MyContainer no CSP de nome forte.

sn -i keyPair.snk MyContainer

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

sn -p keyPair.snk publicKey.snk

O comando a seguir exibe a chave pública e o token da chave pública contidos em 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 CSP padrão.

sn -d MyContainer

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2015 Microsoft