SignerSignEx2, fonction

La fonction SignerSignEx2 signe et horodaille le fichier spécifié, ce qui autorise plusieurs signatures imbriquées.

Notes

Cette fonction n’a pas de fichier d’en-tête associé ni de bibliothèque d’importation. Pour appeler cette fonction, vous devez créer un fichier d’en-tête défini par l’utilisateur et utiliser les fonctions LoadLibrary et GetProcAddress pour établir une liaison dynamique vers Mssign32.dll.

 

Syntaxe

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
);

Paramètres

dwFlags [in]

Modifie le comportement de cette fonction.

Si le fichier à signer est un fichier exécutable portable (PE), il peut s’agir de zéro ou d’une combinaison d’une ou plusieurs des valeurs suivantes.

Valeur Signification
SPC_EXC_PE_PAGE_HASHES_FLAG
0x10
Excluez les hachages de page lors de la création de données indirectes SIP pour le fichier PE. Cet indicateur est prioritaire sur l’indicateur SPC_INC_PE_PAGE_HASHES_FLAG .
Si ni l’indicateur SPC_EXC_PE_PAGE_HASHES_FLAG ni l’indicateur SPC_INC_PE_PAGE_HASHES_FLAG n’est spécifié, la valeur définie avec la fonction WintrustSetDefaultIncludePEPageHashes est utilisée pour ce paramètre. La valeur par défaut de ce paramètre consiste à exclure les hachages de page lors de la création de données indirectes SIP pour les fichiers PE.
Cette valeur est définie dans le fichier d’en-tête Mssip.h.
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.
SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG
0x20
Cette valeur n’est pas prise en charge.
SPC_INC_PE_DEBUG_INFO_FLAG
0x40
Cette valeur n’est pas prise en charge.
SPC_INC_PE_RESOURCES_FLAG
0x80
Cette valeur n’est pas prise en charge.
SPC_INC_PE_PAGE_HASHES_FLAG
0x100
Incluez des hachages de page lors de la création de données indirectes SIP pour le fichier PE.
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.
Cette valeur est définie dans le fichier d’en-tête Mssip.h.
SIG_APPEND
0x1000
La signature sera imbriquée. Si vous définissez cet indicateur avant l’ajout d’une signature, la signature générée est ajoutée en tant que signature externe. Si vous ne définissez pas cet indicateur, la signature générée remplace la signature externe, en supprimant toutes les signatures internes.

 

pSubjectInfo [in]

Pointeur vers une structure SIGNER_SUBJECT_INFO qui spécifie l’objet à signer.

pSignerCert [in]

Pointeur vers une structure SIGNER_CERT qui spécifie le certificat à utiliser pour créer la signature numérique.

pSignatureInfo [in]

Pointeur vers une structure SIGNER_SIGNATURE_INFO qui contient des informations sur la signature numérique.

pProviderInfo [in, facultatif]

Pointeur vers une structure de SIGNER_PROVIDER_INFO qui spécifie le fournisseur de services de chiffrement (CSP) et les informations de clé privée utilisées pour créer la signature numérique.

Si la valeur de ce paramètre est NULL, le paramètre pSignerCert doit spécifier un certificat associé à un fournisseur de solutions Cloud.

dwTimestampFlags [in, facultatif]

Indicateurs qui seront transmis à SignerTimeStampEx3 si le paramètre pwszHttpTimeStamp n’est pas NULL. Il peut s’agir de l’une des valeurs suivantes.

Valeur Signification
SIGNER_TIMESTAMP_AUTHENTICODE
Valeur par défaut. Spécifie un horodatage Authenticode.
SIGNER_TIMESTAMP_RFC3161
Spécifie un horodatage RFC 3161.

 

Ce paramètre est ignoré si le paramètre pwszHttpTimeStamp a la valeur NULL.

pszTimestampAlgorithmOid [in, facultatif]

Identificateur d’objet de l’algorithme à utiliser pour créer un horodatage RFC 3161. Ce paramètre est ignoré pour les horodatages Authenticode.

pwszHttpTimeStamp [in, facultatif]

URL du serveur d’horodatage.

psRequest [in, facultatif]

Pointeur vers un tableau de structures CRYPT_ATTRIBUTE ajoutées à une demande de signature. Ce paramètre est ignoré si le paramètre pwszHttpTimeStamp ne contient pas de valeur valide ou a la valeur NULL.

pSipData [in, facultatif]

Valeur 32 bits qui est passée en tant que données supplémentaires aux fonctions SIP. Le format et le contenu de ce sont définis par le fournisseur SIP.

ppSignerContext [out]

Adresse d’un pointeur vers la structure SIGNER_CONTEXT qui contient l’objet BLOB signé. Lorsque vous avez terminé d’utiliser la structure SIGNER_CONTEXT , libérez la structure SIGNER_CONTEXT en appelant la fonction SignerFreeSignerContext .

pCryptoPolicy [in, facultatif]

Le cas échéant, un pointeur vers une structure de CERT_STRONG_SIGN_PARA qui contient les paramètres utilisés pour case activée pour les signatures fortes. Si un certificat ou sa chaîne ne passe pas, le fichier n’est pas modifié de quelque manière que ce soit. Si une URL est passée pour spécifier une autorité d’horodatage (TSA), cette stratégie est également appliquée à l’horodatage.

Conservés

Réservé. Cette valeur doit être NULL.

Valeur retournée

Si la fonction réussit, la fonction retourne S_OK.

Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les codes d’erreur possibles retournés par cette fonction incluent, sans s’y limiter, les éléments suivants. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Code de retour Description
E_INVALIDARG
Si vous définissez le paramètre dwTimestampFlags sur SIGNER_TIMESTAMP_AUTHENTICODE, vous ne pouvez pas définir le paramètre dwFlagssur SIG_APPEND.

 

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2012 [applications de bureau uniquement]
DLL
Mssign32.dll

Voir aussi

SignerSign

SignerSignEx

SignerFreeSignerContext