Freigeben über


PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC Rückruffunktion (wincrypt.h)

Die PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC Rückruffunktion wird aufgerufen, um eine codierte Signatur zu entschlüsseln und mit einem berechneten Hash zu vergleichen.

Syntax

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
)
{...}

Parameter

[in] dwCertEncodingType

Gibt den verwendeten Codierungstyp an. Es ist immer akzeptabel, sowohl den Zertifikat- als auch den Nachrichtencodierungstyp anzugeben, indem sie mit einem bitweisen OR-Vorgang kombiniert werden, wie im folgenden Beispiel gezeigt:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING Derzeit definierte Codierungstypen sind:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pPubKeyInfo

Die Adresse einer CERT_PUBLIC_KEY_INFO Struktur, die den öffentlichen Schlüssel enthält, der zum Überprüfen der Signatur verwendet werden soll. Sie können dies mit CryptImportPublicKeyInfoEx2 verwenden, um eine BCRYPT_KEY_HANDLE zu erhalten.

[in] pSignatureAlgorithm

Ein Zeiger auf eine CRYPT_ALGORITHM_IDENTIFIER-Struktur , die den Signaturobjektbezeichner (OID) und seine optionalen codierten Parameter enthält.

[in, optional] pvDecodedSignPara

Ein optionaler Zeiger auf die datenstruktur mit decodierten Signaturparametern, die zuvor von der funktion PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC zurückgegeben wurde.

[in] pwszCNGPubKeyAlgid

Eine Unicode-Zeichenfolge, die den Public Key-Algorithmusbezeichner cryptography API: Next Generation (CNG) enthält, der pSignatureAlgorithm-pszObjId> entspricht.

[in] pwszCNGHashAlgid

Eine Unicode-Zeichenfolge, die den Bezeichner des CNG-Hashingalgorithmus enthält, der pSignatureAlgorithm-pszObjId> oder einem Hashalgorithmusbezeichner in pvDecodedSignPara entspricht.

[in] pbComputedHash

Ein Zeiger auf die berechneten Hashbytes, die von der BCryptFinishHash-Funktion zurückgegeben werden und pwszCNGHashAlgid entsprechen.

[in] cbComputedHash

Ein -Wert, der die Länge des berechneten Hashs in Bytes darstellt.

[in] pbSignature

Ein Zeiger auf die codierten Signaturbytes.

[in] cbSignature

Ein -Wert, der die Länge der codierten Signatur in Bytes darstellt.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion ungleich null (TRUE) zurück.

Wenn die Funktion fehlschlägt, gibt sie null (FALSE) zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Wenn diese Rückruffunktion den Signaturalgorithmus nicht unterstützt, muss sie FALSE zurückgeben und SetLastError mit ERROR_NOT_SUPPORTED aufrufen.

Hinweise

Sie können OID-Unterstützungsfunktionen verwenden, um diese Rückruffunktion bereitzustellen. Wincrypt.h definiert zu diesem Zweck die folgende Konstante.

Dauerhaft Definition
CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC "CryptDllVerifyEncodedSignature"

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h