2009-04-28 4 views
1

Dites que j'ai plusieurs assemblys .NET et que vous voulez signer chacun d'entre eux avec un nom fort. Est-ce qu'une paire de clés (un fichier .snk) suffit ou dois-je générer une paire pour chaque assemblage? Devrai-je publier la clé publique de (chaque) paire de clés?De combien de fichiers .snk ai-je besoin?

Répondre

4

Vous n'avez besoin que d'un fichier .snk.

Vous n'avez pas besoin de publier la clé publique. Tout le monde peut obtenir une clé publique en utilisant sn.exe avec le commutateur -p.

+0

Mais comment va-t-il s'assurer que c'est moi qui ai publié l'assemblage? – sharptooth

+0

Le fait qu'il soit signé avec votre clé - la même clé attend l'assemblage de référence - l'authentifie auprès du chargeur d'assemblage. –

+0

Cela prouve seulement qu'il est signé avec la même clé que celle qui vient avec l'assemblage. Mais comment peut-on identifier qui a généré cette clé? – sharptooth

1

Un fichier de clé suffit pour signer plusieurs assemblys associés. Jetez un oeil à travers votre GAC. Les assemblages provenant du même produit ou de la même plateforme ont souvent la même clé. Par exemple, de nombreux assemblys de framework Microsoft .NET partagent la même clé.

+0

Est-ce une paire de clés assez pour toute une entreprise ? – sharptooth

1

Nous avons (3) fichiers .snk. Un que nous utilisons pour signer nos assemblys, un qui a été expédié pour la génération de code sur site (nous ne devons plus faire cela), et mono.snk pour signer Mono.Cecil et Mono.Security (ces sont construits ici pour une utilisation avec Microsoft .NET).

Questions connexes