Partager via


Création d'une paire de clés

Pour signer un assembly avec un nom fort, vous devez avoir une paire de clés publique/privée. Cette paire de clés cryptographiques publique et privée est utilisée lors de la compilation pour créer un assembly avec nom fort. Vous pouvez créer une paire de clés à l'aide de l'outil Strong Name Tool (Sn.exe). Les fichiers de paire de clés ont généralement une extension .snk.

Pour créer une paire de clés

  • À l'invite de commande, tapez la commande suivante :

    sn –k <nom du fichier>

    Dans cette commande, nom du fichier représente le nom du fichier de sortie contenant la paire de clés.

L'exemple suivant crée une paire de clés appelée sgKey.snk.

sn -k sgKey.snk

Si vous avez l'intention de temporiser la signature d'un assembly et si vous contrôlez entièrement la paire de clés (ce qui est improbable en dehors des scénarios de test), vous pouvez utiliser les commandes suivantes pour générer une paire de clés, puis en extraire la clé publique dans un fichier distinct. Créez tout d'abord la paire de clés :

sn -k keypair.snk

Ensuite, extrayez la clé publique de la paire de clés et copiez-la dans un fichier distinct :

sn -p keypair.snk public.snk

Une fois la paire de clés créée, vous devez placer le fichier à un emplacement où les outils de signature de nom fort puissent le trouver. Lorsque vous signez un assembly avec un nom fort, l'utilitaire Assembly Linker (Al.exe) recherche le fichier de clé relatif au répertoire en cours et au répertoire de sortie. Lorsque vous utilisez des compilateurs de ligne de commande, vous pouvez vous contenter de copier la clé dans le répertoire en cours contenant vos modules de code.

Si vous utilisez une interface IDE, telle que Visual Studio .NET, pour signer un assembly avec un nom fort, vous devez comprendre où l'interface IDE recherche le fichier de clé. Par exemple, Visual Basic .NET recherche le fichier de clé dans le répertoire contenant la solution Visual Studio, tandis que le compilateur C# recherche le fichier de clé dans le répertoire contenant les éléments binaires. Placez le fichier de clé dans le répertoire du projet approprié, puis définissez l'attribut de fichier comme suit :

<Assembly: AssemblyKeyFileAttribute("key.snk")>
[C#]
[assembly: AssemblyKeyFileAttribute(@"..\..\key.snk")]

Voir aussi

Création et utilisation d'assemblys avec nom fort