Partager via


PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC fonction de rappel (wincrypt.h)

La fonction de rappel PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC est appelée pour déchiffrer une signature encodée et la comparer à un hachage calculé.

Syntaxe

PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC PfnCryptVerifyEncodedSignatureFunc;

BOOL PfnCryptVerifyEncodedSignatureFunc(
  [in]           DWORD dwCertEncodingType,
  [in]           PCERT_PUBLIC_KEY_INFO pPubKeyInfo,
  [in]           PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [in, optional] void *pvDecodedSignPara,
  [in]           LPCWSTR pwszCNGPubKeyAlgid,
  [in]           LPCWSTR pwszCNGHashAlgid,
  [in]           BYTE *pbComputedHash,
  [in]           DWORD cbComputedHash,
  [in]           BYTE *pbSignature,
  [in]           DWORD cbSignature
)
{...}

Paramètres

[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 types d’encodage actuellement définis sont les suivants :

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pPubKeyInfo

Adresse d’une structure de CERT_PUBLIC_KEY_INFO qui contient la clé publique à utiliser pour vérifier la signature. Vous pouvez l’utiliser avec CryptImportPublicKeyInfoEx2 pour obtenir un BCRYPT_KEY_HANDLE.

[in] pSignatureAlgorithm

Pointeur vers une structure CRYPT_ALGORITHM_IDENTIFIER qui contient l’identificateur d’objet de signature (OID) et ses paramètres encodés facultatifs.

[in, optional] pvDecodedSignPara

Pointeur facultatif vers la structure de données des paramètres de signature décodée précédemment retournée par la fonction PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC .

[in] pwszCNGPubKeyAlgid

Chaîne Unicode qui contient l’identificateur d’algorithme de clé publique de l’API cryptographie : nouvelle génération (CNG) qui correspond à pSignatureAlgorithm-pszObjId>.

[in] pwszCNGHashAlgid

Chaîne Unicode qui contient l’identificateur d’algorithme de hachage CNG qui correspond à pSignatureAlgorithm-pszObjId> ou à un identificateur d’algorithme de hachage dans pvDecodedSignPara.

[in] pbComputedHash

Pointeur vers les octets de hachage calculés retournés par la fonction BCryptFinishHash qui correspond à pwszCNGHashAlgid.

[in] cbComputedHash

Valeur qui représente la longueur, en octets, du hachage calculé.

[in] pbSignature

Pointeur vers les octets de signature encodés.

[in] cbSignature

Valeur qui représente la longueur, en octets, de la signature encodée.

Valeur retournée

Si la fonction réussit, la fonction retourne une valeur différente de zéro (TRUE).

Si la fonction échoue, elle retourne zéro (FALSE). Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Si cette fonction de rappel ne prend pas en charge l’algorithme de signature, elle doit retourner FALSE et appeler SetLastError avec ERROR_NOT_SUPPORTED.

Remarques

Vous pouvez utiliser les fonctions de support OID pour déployer cette fonction de rappel. Wincrypt.h définit la constante suivante à cet effet.

Constant Définition
CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC « CryptDllVerifyEncodedSignature »

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wincrypt.h