Share via


Comment : créer une paire de clés publique/privée

Mise à jour : novembre 2007

Pour signer un assembly avec un nom fort, vous devez avoir une paire de clés publique/privée. Cette paire de clés de chiffrement 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.

Remarque :

Dans Visual Studio 2005, les environnements de développement intégré (IDE) C#, Visual Basic et Visual J# vous permettent de générer des paires de clés et de signer des assemblys sans avoir à créer une paire de clés avec Sn.exe. Ces IDE présentent un onglet Signature dans le Concepteur de projets. L'IDE Visual C++ vous permet de spécifier l'emplacement d'un fichier de clé existant dans la page de propriétés Avancé de la section Éditeur de liens dans la section Propriétés de configuration de la fenêtre Pages de propriétés. L'utilisation de AssemblyKeyFileAttribute pour identifier des paires de fichier de clé est devenue obsolète dans Visual Studio 2005.

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 version antérieure de Visual Studio ne disposant pas de l'onglet Signature dans les propriétés de projet, l'emplacement de fichier de clé recommandé est le répertoire de projet avec l'attribut de fichier spécifié comme suit :

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

Voir aussi

Autres ressources

Création et utilisation d'assemblys avec nom fort