Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Sn.exe (outil Strong Name Tool)

L'outil Strong Name (Sn.exe) permet de signer des assemblys avec des noms forts. Sn.exe fournit des options de gestion des clés, de génération des signatures et de vérification des signatures.

Cet outil est installé automatiquement avec Visual Studio. Pour exécuter l'outil, nous vous recommandons d'utiliser l'Invite de commandes Visual Studio.

Remarque Remarque

Sur les ordinateurs 64 bits, exécutez la version 32 bits de Sn.exe à l'aide de l'invite de commandes Visual Studio et la version 64 bits à l'aide de l'invite de commandes Visual Studio x64 Win64.

Cet outil est installé automatiquement avec Visual Studio. Pour exécuter l'outil, utilisez l'invite de commandes développeur (ou l'invite de commandes Visual Studio dans Windows 7). Pour plus d'informations, consultez Invite de commandes Visual Studio.

À l'invite de commandes, tapez le texte suivant :

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

Option

Description

-a identityKeyPairFile signaturePublicKeyFile

Génère des données AssemblySignatureKeyAttribute pour migrer la clé d'identité vers la clé de signature d'un fichier.

-ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile

Génère des données AssemblySignatureKeyAttribute pour migrer la clé d'identité à la clé de signature d'un conteneur de clé.

-c [csp]

Définit le fournisseur de services de chiffrement par défaut à utiliser pour la signature avec un nom fort. Ce paramètre s'applique à l'ensemble de l'ordinateur. Si vous ne spécifiez pas de nom de fournisseur de services de chiffrement, Sn.exe supprime le paramètre en cours.

-d container

Supprime le conteneur de clé spécifié du fournisseur de services de chiffrement de noms forts.

-D assembly1 assembly2

Vérifie que deux assemblys ne se distinguent que par leur signature. Cette vérification intervient souvent après la nouvelle signature d'un assembly avec une paire de clés différente.

-e assembly outfile

Extrait la clé publique de l'assembly et la stocke dans le outfile.

-h

Affiche la syntaxe et les options de commande de l'outil.

-i infile container

Installe la paire de clés du infile dans le conteneur de clé spécifié. Le conteneur de clé réside dans le fournisseur de services de chiffrement de noms forts.

-k [keysize] outfile

Génère une nouvelle clé RSACryptoServiceProvider de la taille spécifiée et l'écrit dans le fichier spécifié. Une clé publique et une clé privée sont écrites dans le fichier.

Si vous ne spécifiez pas de taille de clé, une clé de 1 024 bits est générée par défaut si le fournisseur de services de chiffrement avancé Microsoft est installé ; sinon, une clé de 512 bits est générée.

Le paramètre keysize prend en charge des longueurs de clé allant de 384 bits à 16 384 bits dans des incréments de 8 bits si le fournisseur de services de chiffrement avancé Microsoft est installé. Il prend en charge des longueurs de clé allant de 384 bits à 512 bits par incréments de 8 bits si le fournisseur de services de chiffrement de base Microsoft est installé.

-m [y | n]

Spécifie si les conteneurs de clés sont propres à l'ordinateur ou à l'utilisateur. Si vous spécifiez y, les conteneurs de clés sont propres à l'ordinateur. Si vous spécifiez n, les conteneurs de clés sont propres à l'utilisateur.

Si ni y, ni n ne sont spécifiés, cette option affiche le paramètre actuel.

-o infile [outfile]

Extrait la clé publique du infile et la stocke dans un fichier .csv. Chaque octet de la clé publique est séparé par une virgule. Ce format s'avère utile pour les références de codage en dur aux clés sous forme de tableaux initialisés dans le code source. Si vous ne spécifiez pas d'outfile, cette option place la sortie dans le Presse-papiers.

Remarque Remarque
Cette option ne vérifie pas si l'entrée est une clé publique uniquement. Si infile contient une paire de clés dont une est privée, la clé privée est également extraite.

-p infile outfile [hashalg]

Extrait la clé publique de la paire de clés dans l'infile et l'enregistre dans l'outfile, éventuellement à l'aide de l'algorithme RSA spécifié par hashalg. Cette clé publique permet de différer la signature d'un assembly à l'aide des options /delaysign+ et /keyfile d'Assembly Linker (Al.exe). En cas signature différée d'un assembly, seule la clé publique est définie au moment de la compilation et un espace est réservé dans le fichier pour la signature qui sera ajoutée par la suite, lorsque la clé privée sera connue.

-pc container outfile [hashalg]

Extrait la clé publique de la paire de clés figurant dans container et la stocke dans outfile. Si vous utilisez l'option hashalg, l'algorithme RSA est utilisé pour récupérer la clé publique.

-Pb [y | n]

Spécifie si la stratégie permettant d'ignorer les noms forts est appliquée. Si vous spécifiez y, les noms forts pour les assemblys à confiance totale ne sont pas validés en cas de chargement dans un AppDomain à confiance totale. Si vous spécifiez n, l'exactitude des noms forts est validée, mais pas pour un nom fort spécifique. Le StrongNameIdentityPermission n'a aucun effet sur les assemblys à confiance totale. Vous devez procéder à votre propre contrôle pour une correspondance de nom fort.

Si ni y, ni n ne sont spécifiés, cette option affiche le paramètre actuel. La valeur par défaut est y.

Remarque Remarque
Sur les ordinateurs 64 bits, vous devez définir ce paramètre à la fois sur l'instance 32 bits et sur l'instance 64 bits de Sn.exe.

-q[uiet]

Spécifie le mode silencieux ; supprime l'affichage des messages d'opération réussie.

-R[aassembly infile

Signe à nouveau un assembly ayant préalablement fait l'objet d'une signature ou dont la signature a été différée avec la paire de clés figurant dans infile.

Si -Ra est utilisé, les hachages sont recalculés pour tous les fichiers de l'assembly.

-Rc[aassembly container

Signe à nouveau un assembly ayant préalablement fait l'objet d'une signature ou dont la signature a été différée avec la paire de clés figurant dans container.

Si -Rca est utilisé, les hachages sont recalculés pour tous les fichiers de l'assembly.

-Rh assembly

Recalcule des hachages pour tous les fichiers de l'assembly.

-t[p] infile

Affiche le jeton de la clé publique stockée dans infile. Le contenu de infile doit être une clé publique générée précédemment à partir d'un fichier de paire de clés à l'aide de -p. N'utilisez pas l'option -t[p] pour extraire directement le jeton d'un fichier de paire de clés.

Sn.exe calcule le jeton à l'aide d'une fonction de hachage issue de la clé publique. Pour gagner de la place, le Common Language Runtime stocke les jetons des clés publiques dans le manifeste en cas de référence à un autre assembly, lorsqu'il enregistre une dépendance dans un assembly portant un nom fort. L'option -tp affiche la clé publique en plus du jeton. Si l'attribut AssemblySignatureKeyAttribute a été appliqué à l'assembly, le jeton est pour la clé d'identité, et le nom d'algorithme de hachage et de la clé d'identité s'affiche.

Notez que cette option ne vérifie pas la signature de l'assembly et qu'elle ne doit pas être utilisée pour prendre des décisions en matière d'approbation. Cette option affiche seulement les données brutes de jetons de clés publiques.

-T[p] assembly

Affiche le jeton de la clé publique de l'assembly. L'assembly doit correspondre au nom d'un fichier qui contient un manifeste d'assembly.

Sn.exe calcule le jeton à l'aide d'une fonction de hachage issue de la clé publique. Pour gagner de la place, le runtime stocke les jetons des clés publiques dans le manifeste en cas de référence à un autre assembly, lorsqu'il enregistre une dépendance dans un assembly portant un nom fort. L'option -Tp affiche la clé publique en plus du jeton. Si l'attribut AssemblySignatureKeyAttribute a été appliqué à l'assembly, le jeton est pour la clé d'identité, et le nom d'algorithme de hachage et de la clé d'identité s'affiche.

Notez que cette option ne vérifie pas la signature de l'assembly et qu'elle ne doit pas être utilisée pour prendre des décisions en matière d'approbation. Cette option affiche seulement les données brutes de jetons de clés publiques.

-TS assembly infile

Teste la signature du assembly signé ou partiellement signé avec la paire de clés dans infile.

-TScassemblycontainer

Teste la signature du assembly signé ou partiellement signé avec la paire de clés du conteneur de clé container.

-v assembly

Vérifie le nom fort figurant dans assembly, où assembly correspond au nom d'un fichier comportant un manifeste d'assembly.

-vf assembly

Vérifie le nom fort figurant dans assembly. À la différence de l'option -v, -vf force la vérification même si celle-ci a été désactivée à l'aide de l'option -Vr.

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

Crée un fichier des entrées d'inscription (.reg) que vous pouvez utiliser pour inscrire l'assembly spécifié afin d'ignorer la vérification. Les règles d'affectation des noms d'assemblys qui s'appliquent à l'option -Vr s'appliquent à –Vk également. Pour plus d'informations sur la userlist et les options infile, consultez l'option –Vr.

-Vl

Répertorie les paramètres actuels de la vérification des noms forts sur cet ordinateur.

-Vr assembly [userlist] [infile]

Inscrit assembly pour que la vérification soit ignorée. Éventuellement, vous pouvez spécifier une liste de noms d'utilisateurs séparés par une virgule à laquelle l'exception de vérification s'appliquera. Si vous spécifiez infile, la vérification reste activée, mais la clé publique figurant dans infile est utilisée au cours des opérations de vérification. Vous pouvez spécifier assembly sous la forme *, strongname pour inscrire tous les assemblys avec le nom fort spécifié. Pour strongname, spécifiez la chaîne de chiffres hexadécimaux représentant la clé publique sous forme de jetons. Consultez les options -t et -T pour afficher le jeton de la clé publique.

Mise en garde Attention
N'utilisez cette option que pendant le développement. L'ajout d'un assembly à la liste des omissions de vérification crée une faille de sécurité. Un assembly malveillant peut utiliser le nom complètement spécifié (nom, version, culture et jeton de clé publique) de l'assembly ajouté à la liste des omissions de vérification pour usurper son identité. Cela permet également à l'assembly malveillant d'ignorer la vérification.

-Vu assembly

Annule l'inscription d'assembly pour que la vérification soit ignorée. Les mêmes règles d'affectation de noms aux assemblys s'appliquent aux options -Vr et -Vu.

-Vx

Supprime toutes les entrées concernées par l'exception de vérification.

-?

Affiche la syntaxe et les options de commande de l'outil.

Remarque Remarque

Toutes les options de Sn.exe respectent la casse et doivent être tapées exactement comme indiqué pour pouvoir être reconnues par l'outil.

Les options -R et –Rc s'avèrent utiles avec les assemblys dont la signature a été différée. Dans ce cas, seule la clé publique est définie au moment de la compilation et la signature a lieu par la suite, lorsque la clé privée est connue.

Remarque Remarque

Pour les paramètres (par exemple, -Vr)) qui écrivent dans les ressources protégées, telles que le Registre, exécutez SN.exe en tant qu'administrateur.

La commande suivante crée une nouvelle paire de clés aléatoire et la stocke dans keyPair.snk.

sn -k keyPair.snk

La commande suivante stocke la clé figurant dans keyPair.snk dans le conteneur MyContainer du fournisseur de services de chiffrement de noms forts.

sn -i keyPair.snk MyContainer

La commande suivante extrait la clé publique de keyPair.snk et la stocke dans publicKey.snk.

sn -p keyPair.snk publicKey.snk

La commande suivante affiche la clé publique et le jeton pour la clé publique contenue dans publicKey.snk.

sn -tp publicKey.snk

La commande suivante vérifie l'assembly MyAsm.dll.

sn -v MyAsm.dll

La commande suivante supprime MyContainer du fournisseur de services de chiffrement par défaut.

sn -d MyContainer

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft