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
Prompt de comando Visual Studio
Conceitos
Outros recursos
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. |