Fonction CryptMsgCountersignEncoded (wincrypt.h)

La fonction CryptMsgCountersignEncoded contresigne une signature de message PKCS #7 existante. La mémoire tampon BYTEpbCountersignature qu’elle crée est un SignerInfo encodé en PKCS #7 qui peut être utilisé comme attribut Countersignature non authentifié d’un message de données signées ou de données signées et enveloppées PKCS #9.

Syntaxe

BOOL CryptMsgCountersignEncoded(
  [in]      DWORD                    dwEncodingType,
  [in]      PBYTE                    pbSignerInfo,
  [in]      DWORD                    cbSignerInfo,
  [in]      DWORD                    cCountersigners,
  [in]      PCMSG_SIGNER_ENCODE_INFO rgCountersigners,
  [out]     PBYTE                    pbCountersignature,
  [in, out] PDWORD                   pcbCountersignature
);

Paramètres

[in] dwEncodingType

Spécifie le type d’encodage utilisé. Actuellement, seuls les X509_ASN_ENCODING et les PKCS_7_ASN_ENCODING sont utilisés; toutefois, des types d’encodage supplémentaires peuvent être ajoutés à l’avenir. Pour l’un ou l’autre type d’encodage actuel, utilisez :

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbSignerInfo

Pointeur vers l’objet SignerInfo encodé qui doit être contre-signé.

[in] cbSignerInfo

Nombre, en octets, des données SignerInfo encodées.

[in] cCountersigners

Nombre de contre-expéditeurs dans le tableau rgCountersigners .

[in] rgCountersigners

Tableau des structures CMSG_SIGNER_ENCODE_INFO des contre-expéditeurs.

[out] pbCountersignature

Pointeur vers une mémoire tampon pour recevoir un attribut de contre-signature PKCS #9 encodé.

Lors de l’entrée, ce paramètre peut être 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] pcbCountersignature

Pointeur vers une variable qui spécifie la taille, en octets, de la mémoire tampon vers laquelle pointe le paramètre pbCountersignature . Lorsque la fonction retourne, la variable pointée vers par le paramètre pcbCountersignature contient le nombre d’octets stockés dans la mémoire tampon.

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.

Le tableau suivant répertorie les codes d’erreur les plus couramment retournés par la fonction GetLastError .

Code de retour Description
CRYPT_E_OID_FORMAT
L’identificateur d’objet est mal mis en forme.
E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.
E_OUTOFMEMORY
Mémoire insuffisante.
 

Les erreurs propagées peuvent être retournées à partir de l’une des fonctions suivantes :

Si la fonction échoue, GetLastError peut renvoyer une erreur d’encodage/décodage ASN.1 ( Abstract Syntax Notation One ). Pour plus d’informations sur ces erreurs, consultez Valeurs de retour d’encodage/décodage ASN.1.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête wincrypt.h
Bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CryptMsgCountersign

CryptMsgVerifyCountersignatureEncoded

Fonctions de message de bas niveau

Fonctions de message simplifiées