Strumento firma digitale (Signcode.exe)

Lo strumento firma digitale consente di apporre una firma digitale Authenticode a un file eseguibile portabile (PE, Portable Executable) con estensione DLL o EXE. È possibile firmare un assembly o un singolo file contenuto in un assembly su più file. Se si distribuisce un assembly, è consigliabile firmare l'assembly anziché i singoli file. Se si esegue Signcode.exe senza specificare alcuna opzione, verrà avviata una procedura guidata che fornirà istruzioni per il processo di firma.

Lo Strumento firma digitale viene fornito solo con .NET Framework SDK versione 1.0 e 1.1. Nelle versioni più recenti utilizzare invece l'utilità Strumento per la firma (SignTool.exe).

signcode [options] filename | assemblyname

Parametri

Argomento Descrizione

nomefile

Nome del file PE da firmare.

nomeassembly

Nome dell'assembly da firmare. Questo file deve contenere un manifesto assembly.

Opzione Descrizione

-$ autorità

Specifica l'autorità di firma del certificato, che deve essere individual o commercial. Per impostazione predefinita, viene utilizzato il livello massimo di autorizzazione del certificato.

-a algoritmo

Specifica l'algoritmo di hash per la firma, che deve corrispondere a md5 (valore predefinito) o sha1.

-c file

Specifica il file che contiene il certificato codificato dell'editore del software.

-cn nome

Specifica il nome comune del certificato.

-i info

Specifica una posizione in cui sono disponibili ulteriori informazioni sul contenuto (in genere un URL).

-j Nomedll

Specifica il nome di una DLL che restituisce una matrice di attributi autenticati per la firma dei file. È possibile specificare più DLL ripetendo l'opzione -j.

-jp param

Specifica un parametro da passare per la DLL precedente. Ad esempio: -j dll1 -jp Paramdll1. Lo strumento consente di specificare un unico parametro per ciascuna DLL.

-k nomechiave

Specifica il nome del contenitore di chiavi.

-ky tipochiave

Specifica il tipo della chiave, che deve corrispondere a signature, exchange o un valore integer quale 4.

-n nome

Specifica un nome in formato testo che rappresenta il contenuto del file da firmare.

-p provider

Specifica il nome del provider di crittografia del sistema.

-r posizione

Specifica la posizione dell'archivio certificati all'interno del Registro di sistema, che deve corrispondere a currentuser (valore predefinito) o localmachine.

-s archivio

Specifica l'archivio certificati contenente il certificato di firma. Il valore predefinito è l'archivio my.

-sha1 identificativopersonale

Specifica l'identificativopersonale, ovvero l'hash sha1 del certificato di firma incluso nell'archivio certificati.

-sp criteri

Imposta i criteri dell'archivio certificati, che devono corrispondere a spcStore (valore predefinito) o chain. Se si specifica chain, tutti i certificati della catena di verifica, inclusi i certificati autofirmati, verranno aggiunti alla firma. Se si specifica spcStore, i certificati autofirmati attendibili non verranno inclusi con i certificati della catena aggiunti alla firma.

-spc file

Specifica il file SPC contenente i certificati dell'editore del software.

-t URL

Indica che il file deve essere contrassegnato con un timestamp dal server di timestamp all'indirizzo http specificato.

-tr numero

Specifica il numero massimo di tentativi che è possibile effettuare per apporre un timestamp. Il valore predefinito è 1.

-tw numero

Specifica l'intervallo, in secondi, tra i tentativi di apposizione del timestamp. Il valore predefinito è 0.

-v Filepvk

Specifica il nome del file di chiave privata (PVK) contenente la chiave privata.

-x

Appone al file il timestamp, ma non la firma.

-y tipo

Specifica il tipo di provider di crittografia da utilizzare.

Un provider di crittografia contiene implementazioni degli algoritmi e degli standard di crittografia. Per un elenco dei tipi di provider predefiniti, vedere "Microsoft Cryptographic Service Providers" in Platform SDK.

-?

Visualizza la sintassi e le opzioni dei comandi dello strumento.

Note

Per firmare con un file SPC (Software Publisher Certificate, certificato dell'editore del software), è necessario specificare le opzioni -spc e -v se la chiave privata si trova in un file PVK. Se la chiave privata si trova in un contenitore di chiavi del Registro di sistema, sarà necessario specificare le opzioni -spc e -k. Se si desidera firmare il file con un file SPC, è consigliabile creare il file SPC mediante lo Strumento di creazione certificati e lo Strumento di verifica dei certificati dell'editore del software.

Esempi

Il comando che segue firma XYZ.exe utilizzando il certificato dell'editore del software XYZ.spc e la chiave privata presente nel contenitore di chiavi del Registro di sistema XYZ.

signcode /spc XYZ.spc /k XYZ XYZ.exe

Il comando che segue firma l'assembly myAssembly utilizzando il certificato presente in myCertificate.spc e la chiave privata presente in myKey.pvk.

signcode /spc myCertificate.spc /v myKey.pvk  myAssembly

Vedere anche

Riferimenti

Strumenti di .NET Framework
Strumento di creazione certificati (Makecert.exe)
Strumento di verifica dei certificati dell'editore del software (Cert2spc.exe)
Prompt dei comandi di SDK

Concetti

Autorizzazioni di protezione