Fonction CryptSignMessage (wincrypt.h)
La fonction CryptSignMessage crée un hachage du contenu spécifié, signe le hachage, puis encode à la fois le contenu du message d’origine et le hachage signé.
Syntaxe
BOOL CryptSignMessage(
[in] PCRYPT_SIGN_MESSAGE_PARA pSignPara,
[in] BOOL fDetachedSignature,
[in] DWORD cToBeSigned,
[in] const BYTE * [] rgpbToBeSigned,
[in] DWORD [] rgcbToBeSigned,
[out] BYTE *pbSignedBlob,
[in, out] DWORD *pcbSignedBlob
);
Paramètres
[in] pSignPara
Pointeur vers CRYPT_SIGN_MESSAGE_PARA structure contenant les paramètres de signature.
[in] fDetachedSignature
TRUE s’il s’agit d’une signature détachée. Sinon, FALSE. Si ce paramètre a la valeur TRUE, seul le hachage signé est encodé en pbSignedBlob. Sinon, rgpbToBeSigned et le hachage signé sont encodés.
[in] cToBeSigned
Nombre d’éléments de tableau dans rgpbToBeSigned et rgcbToBeSigned. Ce paramètre doit être défini sur un, sauf si fDetachedSignature a la valeur TRUE.
[in] rgpbToBeSigned
Tableau de pointeurs vers les mémoires tampons qui contiennent le contenu à signer.
[in] rgcbToBeSigned
Tableau de tailles, en octets, des mémoires tampons de contenu pointées dans rgpbToBeSigned.
[out] pbSignedBlob
Pointeur vers une mémoire tampon pour recevoir le hachage signé encodé, si fDetachedSignature a la valeur TRUE, ou vers le contenu encodé et le hachage signé si fDetachedSignature a la valeur FALSE.
Ce paramètre peut avoir la valeur NULL pour définir la taille de ces informations à des fins d’allocation de mémoire. Pour plus d’informations, consultez Récupération de données de longueur inconnue.
[in, out] pcbSignedBlob
Pointeur vers un DWORD spécifiant la taille, en octets, de la mémoire tampon pbSignedBlob . Lorsque la fonction retourne, cette variable contient la taille, en octets, du message signé et encodé.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro (TRUE).
Si la fonction échoue, la valeur de retour est zéro (FALSE).
Pour obtenir des informations d’erreur étendues, appelez GetLastError.
La liste suivante répertorie les codes d’erreur les plus couramment retournés par la fonction GetLastError .
Code de retour | Description |
---|---|
|
Si la mémoire tampon spécifiée par le paramètre pbSignedBlob n’est pas assez grande pour contenir les données retournées, la fonction définit le code ERROR_MORE_DATA et stocke la taille de mémoire tampon requise, en octets, dans la variable pointée par pcbSignedBlob. |
|
Le type d’encodage de message n’est pas valide. Actuellement, seule PKCS_7_ASN_ENCODING est prise en charge. Le paramètre cbSize dans *pSignPara n’est pas valide. |
|
Le pSigningCert dans *pSignPara n’a pas de propriété CERT_KEY_PROV_INFO_PROP_ID ou CERT_KEY_CONTEXT_PROP_ID. |
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wincrypt.h |
Bibliothèque | Crypt32.lib |
DLL | Crypt32.dll |