Condividi tramite


Uso di SetupAPI per verificare le firme authenticode del driver

È possibile utilizzare le procedure seguenti per verificare che un pacchetto driver disponga di una firma digitale Authenticode valida. Queste procedure sono supportate a partire da Microsoft Windows Server 2003.

Per determinare se un driver ha una firma Authenticode valida

Controllare il flag DNF_AUTHENTICODE_SIGNED.

Se un pacchetto driver ha una firma Authenticode valida, Windows imposta questo flag nel membro Flags della struttura SP_DRVINSTALL_PARAMS del nodo driver. Tenere presente anche che Windows imposta il flag di DNF_INF_IS_SIGNED se il driver ha una firma di rilascio WHQL, se è un driver fornito dal sistema o se ha una firma Authenticode.

Per verificare che un file INF abbia una firma Authenticode valida

  1. Chiamare SetupVerifyInfFile.

  2. Controllare il codice di errore restituito dalla funzione.

    Se il file INF non è fornito dal sistema e non ha una firma digitale WHQL valida, ma ha una firma Authenticode valida, SetupVerifyInfFile restituisce FALSE e GetLastError restituisce uno dei codici di errore seguenti:

    ERROR_AUTHENTICODE_TRUSTED_PUBLISHER
    Indica che l'autore è attendibile perché il certificato dell'editore è installato nell'archivio certificati Autori attendibili.

    ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED
    Indica che non è possibile stabilire automaticamente l'attendibilità perché il certificato di firma dell'autore non è installato nell'archivio certificati dell'editore attendibile. Tuttavia, questo non indica necessariamente un errore. Indica invece che il chiamante deve applicare criteri specifici del chiamante per stabilire un trust nel server di pubblicazione.

Se il file INF ha una firma Authenticode valida, SetupVerifyInfFile restituisce anche le informazioni seguenti nella struttura di output SP_INF_SIGNER_INFO:

  • Il membro DigitalSigner è impostato sul nome del firmatario.

  • Il membro CatalogFile è impostato sul percorso completo del file di catalogo firmato corrispondente.

Tenere tuttavia presente che SetupVerifyInfFile non restituisce la versione nel membro DigitalSignerVersion .

Per verificare che un file abbia una firma Authenticode valida

Chiamare la funzione SetupAPI SetupScanFileQueue usando il flag SPQ_SCAN_USE_CALLBACK_SIGNERINFO.

SetupScanFileQueue invia una richiesta di SPFILENOTIFY_QUEUESCAN_SIGNERINFO alla routine di callback del chiamante e passa un puntatore a una struttura FILEPATHS_SIGNERINFO. Se un file è firmato con una firma Authenticode valida, la funzione imposta il codice di errore sul valore ERROR_AUTHENTICODE_Xxx appropriato prima di chiamare la routine di callback per un file. La funzione imposta anche le informazioni seguenti nella struttura FILEPATHS_SIGNERINFO:

  • Il membro DigitalSigner è impostato sul nome del firmatario.

  • Il membro CatalogFile è impostato sul percorso completo del file di catalogo firmato corrispondente.

Tuttavia, tenere presente che la versione non è impostata nel membro Version .

SetupScanFileQueue imposta il codice di errore ERROR_AUTHENTICODE_Xxx nello stesso modo descritto in precedenza in questo argomento per SetupVerifyInfFile.