Creazione di una coppia di chiavi

Per firmare un assembly con un nome sicuro, è necessario disporre di una coppia di chiavi, pubblica e privata. Tale coppia di chiavi crittografiche, pubblica e privata, viene utilizzata durante la compilazione per creare un assembly con nome sicuro. È possibile creare una coppia di chiavi utilizzando strumento Strong Name (Sn.exe). Ai file di coppie di chiavi è solitamente associata l'estensione file SNK.

Per creare una coppia di chiavi

  • Al prompt dei comandi, digitare il comando seguente:

    sn –k <nome file>

    In questo comando, nome file corrisponde al nome del file di output contenente la coppia di chiavi.

L'esempio seguente consente di creare una coppia di chiavi denominata sgKey.snk.

sn -k sgKey.snk

Se si desidera ritardare la firma di un assembly e si controlla l'intera coppia di chiavi (evento improbabile al di fuori degli scenari di testing), è possibile utilizzare i comandi seguenti per generare una coppia di chiavi ed estrarre da tale coppia una chiave pubblica, che viene salvata in un file distinto. Creare prima di tutto la coppia di chiavi:

sn -k keypair.snk

Estrarre quindi la chiave pubblica dalla coppia di chiavi e copiarla in un file distinto:

sn -p keypair.snk public.snk

Dopo aver creato la coppia di chiavi, è necessario salvare il file in una posizione accessibile allo strumento di firma con nome sicuro. Quando firma un assembly con un nome sicuro, Assembly Linker (Al.exe) cerca il file della chiave relativo alla directory corrente e alla directory di output. Se si utilizzano i compilatori della riga di comando, è sufficiente copiare la chiave nella directory corrente contenente i moduli di codice.

Se per la firma di un assembly con nome sicuro si utilizza un'IDE, quale Visual Studio .NET, è necessario sapere in che posizione l'IDE cerca il file della chiave. Il file della chiave viene ad esempio cercato da Visual Basic .NET nella directory contenente la soluzione di Visual Studio e viene cercato dal compilatore C# nella directory contenente i dati binari. Salvare il file della chiave nella directory del progetto appropriata e impostare come segue l'attributo relativo al file:

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

Vedere anche

Creazione e utilizzo degli assembly con nome sicuro