Condividi tramite


Procedura: creare una coppia di chiavi pubblica/privata

Aggiornamento: novembre 2007

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 lo strumento Nome sicuro (Sn.exe). Ai file di coppie di chiavi è solitamente associata l'estensione file SNK.

Nota:

In Visual Studio 2005 gli ambienti di sviluppo integrato (IDE, Integrated Development Environment) C#, Visual Basic e Visual J# consentono di generare coppie di chiavi e di firmare assembly senza dover creare una coppia di chiavi utilizzando Sn.exe. In questi ambienti IDE è disponibile una scheda Firma in Progettazione progetti. L'ambiente IDE Visual C++ consente di specificare il percorso di un file di chiave esistente nella pagina delle proprietà Avanzate nella sezione Linker della sezione Proprietà di configurazione  della finestra Pagine delle proprietà. L'utilizzo di AssemblyKeyFileAttribute per identificare le coppie di file di chiave è obsoleto in Visual Studio 2005.

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 si utilizza una versione precedente di Visual Studio in cui non è disponibile una scheda Firma nelle proprietà del progetto, è consigliabile utilizzare come percorso del file di chiave la directory del progetto con l'attributo di file specificato come segue:

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

Vedere anche

Altre risorse

Creazione e utilizzo degli assembly con nome sicuro