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 |
---|---|
|
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 |
|
Voir aussi