Condividi tramite


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
E_INVALIDARG
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
Mssign32.dll

Vedi anche

SignerSign

SignerSignEx

SignerFreeSignerContext