Funzione SignerSignEx2
La funzione SignerSignEx2 firma e timestamp il file specificato, consentendo più firme annidate.
Nota
Questa funzione non ha alcun file di intestazione associato o una libreria di importazione. Per chiamare questa funzione, è necessario creare un file di intestazione definito dall'utente e usare le funzioni LoadLibrary e GetProcAddress per collegare dinamicamente a Mssign32.dll.
Sintassi
HRESULT WINAPI SignerSignEx2(
_In_ DWORD dwFlags,
_In_ SIGNER_SUBJECT_INFO *pSubjectInfo,
_In_ SIGNER_CERT *pSignerCert,
_In_ SIGNER_SIGNATURE_INFO *pSignatureInfo,
_In_opt_ SIGNER_PROVIDER_INFO *pProviderInfo,
_In_opt_ DWORD dwTimestampFlags,
_In_opt_ PCSTR pszTimestampAlgorithmOid,
_In_opt_ PCWSTR pwszHttpTimeStamp,
_In_opt_ PCRYPT_ATTRIBUTES psRequest,
_In_opt_ PVOID pSipData,
_Out_ SIGNER_CONTEXT **ppSignerContext,
_In_opt_ PCERT_STRONG_SIGN_PARA pCryptoPolicy,
_Reserved_ PVOID pReserved
);
Parametri
-
dwFlags [in]
-
Modifica il comportamento di questa funzione.
Se il file da firmare è un file eseguibile portabile (PE), questo può essere zero o una combinazione di uno o più dei valori seguenti.
Valore Significato - SPC_EXC_PE_PAGE_HASHES_FLAG
- 0x10
Escludere gli hash di pagina durante la creazione di dati indiretti SIP per il file PE. Questo flag ha la precedenza sul flag di SPC_INC_PE_PAGE_HASHES_FLAG .
Se non viene specificato alcun SPC_EXC_PE_PAGE_HASHES_FLAG o il flag di SPC_INC_PE_PAGE_HASHES_FLAG , il valore impostato con la funzione WintrustSetDefaultIncludePEPageHashes viene utilizzata per questa impostazione. L'impostazione predefinita per questa impostazione consiste nell'escludere gli hash di pagina durante la creazione di dati indiretti SIP per i file PE.
Questo valore è definito nel file di intestazione Mssip.h.
Windows Server 2003 e Windows XP: Questo valore non è supportato.- SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG
- 0x20
Questo valore non è supportato. - SPC_INC_PE_DEBUG_INFO_FLAG
- 0x40
Questo valore non è supportato. - SPC_INC_PE_RESOURCES_FLAG
- 0x80
Questo valore non è supportato. - SPC_INC_PE_PAGE_HASHES_FLAG
- 0x100
Includere gli hash delle pagine durante la creazione di dati indiretti SIP per il file PE.
Windows Server 2003 e Windows XP: Questo valore non è supportato.
Questo valore è definito nel file di intestazione Mssip.h.- SIG_APPEND
- 0x1000
La firma verrà annidata. Se si imposta questo flag prima dell'aggiunta di una firma, verrà aggiunta la firma generata come firma esterna. Se non si imposta questo flag, la firma generata sostituisce la firma esterna, eliminando tutte le firme interne. -
pSubjectInfo [in]
-
Puntatore a una struttura SIGNER_SUBJECT_INFO che specifica l'oggetto da firmare.
-
pSignerCert [in]
-
Puntatore a una struttura SIGNER_CERT che specifica il certificato da usare per creare la firma digitale.
-
pSignatureInfo [in]
-
Puntatore a una struttura SIGNER_SIGNATURE_INFO che contiene informazioni sulla firma digitale.
-
pProviderInfo [in, facoltativo]
-
Puntatore a una struttura SIGNER_PROVIDER_INFO che specifica il provider di servizi di crittografia (CSP) e le informazioni sulla chiave privata usate per creare la firma digitale.
Se il valore di questo parametro è NULL, il parametro pSignerCert deve specificare un certificato associato a un CSP.
-
dwTimestampFlags [in, facoltativo]
-
Flag che verranno passati a SignerTimeStampEx3 se il parametro pwszHttpTimeStamp non è NULL. Questo può essere uno dei valori seguenti.
Valore Significato - SIGNER_TIMESTAMP_AUTHENTICODE
Valore predefinito. Specifica un timestamp Authenticode. - SIGNER_TIMESTAMP_RFC3161
Specifica un timestamp RFC 3161. Questo parametro viene ignorato se il parametro pwszHttpTimeStamp è NULL.
-
pszTimestampAlgorithmOid [in, facoltativo]
-
Identificatore dell'oggetto dell'algoritmo da usare per la creazione di un timestamp RFC 3161. Questo parametro viene ignorato per i timestamp Authenticode.
-
pwszHttpTimeStamp [in, facoltativo]
-
URL del server timestamp.
-
psRequest [in, facoltativo]
-
Puntatore a una matrice di strutture CRYPT_ATTRIBUTE aggiunte a una richiesta di firma. Questo parametro viene ignorato se il parametro pwszHttpTimeStamp non contiene un valore valido o è NULL.
-
pSipData [in, facoltativo]
-
Valore a 32 bit passato come dati aggiuntivi alle funzioni SIP. Il formato e il contenuto di questo valore sono definiti dal provider SIP.
-
ppSignerContext [out]
-
Indirizzo di un puntatore alla struttura SIGNER_CONTEXT contenente il BLOB firmato. Al termine dell'uso della struttura SIGNER_CONTEXT , liberare la struttura SIGNER_CONTEXT chiamando la funzione SignerFreeSignerContext .
-
pCryptoPolicy [in, facoltativo]
-
Se presente, un puntatore a una struttura CERT_STRONG_SIGN_PARA che contiene i parametri usati per verificare la presenza di firme complesse. Se un certificato o la relativa catena non passa, il file non viene modificato in alcun modo. Se un URL viene passato per specificare un'autorità di timestamp (TSA), questo criterio viene applicato anche al timestamp.
-
Conservato
-
Riservato. Questo valore deve essere NULL.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce S_OK.
Se la funzione ha esito negativo, restituisce un valore HRESULT che indica l'errore. I codici di errore possibili restituiti da questa funzione includono, ma non sono limitati ai seguenti. Per un elenco di codici di errore comuni, vedere Valori HRESULT comuni.
Codice restituito | Descrizione |
---|---|
|
Se si imposta il parametro dwTimestampFlags su SIGNER_TIMESTAMP_AUTHENTICODE, non è possibile impostare il parametro dwFlags su SIG_APPEND. |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 8 [solo app desktop] |
Server minimo supportato |
Windows Server 2012 [solo app desktop] |
DLL |
|
Vedi anche