Partager via


PFN_CRYPT_GET_SIGNER_CERTIFICATE fonction de rappel (wincrypt.h)

La fonction de rappel fournie par l’utilisateur CryptGetSignerCertificateCallback est utilisée avec la structure CRYPT_VERIFY_MESSAGE_PARA pour obtenir et vérifier le certificat d’un signataire de message.

Syntaxe

PFN_CRYPT_GET_SIGNER_CERTIFICATE PfnCryptGetSignerCertificate;

PCCERT_CONTEXT PfnCryptGetSignerCertificate(
  [in] void *pvGetArg,
  [in] DWORD dwCertEncodingType,
  [in] PCERT_INFO pSignerId,
  [in] HCERTSTORE hMsgCertStore
)
{...}

Paramètres

[in] pvGetArg

Pointeur vers les données définies par l’utilisateur transmises à la fonction de vérification comme spécifié dans la structure CRYPT_VERIFY_MESSAGE_PARA .

[in] dwCertEncodingType

Spécifie le type d’encodage utilisé. Il est toujours acceptable de spécifier les types d’encodage de certificat et de message en les combinant avec une opération OR au niveau du bit, comme illustré dans l’exemple suivant :

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Les types d’encodage actuellement définis sont les suivants :

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pSignerId

Pointeur vers une structure CERT_INFO contenant l’émetteur et le numéro de série. Peut avoir la valeur NULL s’il n’y a pas de contenu ou de signataire.

[in] hMsgCertStore

Handle du magasin de certificats contenant tous les certificats et listes de contrôle d’accès dans le message signé.

Valeur retournée

Si un certificat de signataire est trouvé, la fonction retourne un pointeur vers un CERT_CONTEXT en lecture seule. Le CERT_CONTEXT retourné a été obtenu à partir d’un magasin de certificats ou a été créé à l’aide de CertCreateCertificateContext. Dans les deux cas, il doit être libéré à l’aide de CertFreeCertificateContext. Si cette fonction échoue, la valeur de retour est NULL.

Remarques

Si le message ne contient pas de contenu ou de signataires, la fonction est appelée avec pSignerId défini sur NULL.

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