PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC Rückruffunktion (wincrypt.h)

Die rückruffunktion PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC wird aufgerufen, um einen berechneten Hash zu signieren und zu codieren.

Syntax

PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC PfnCryptSignAndEncodeHashFunc;

BOOL PfnCryptSignAndEncodeHashFunc(
  [in]      NCRYPT_KEY_HANDLE hKey,
  [in]      DWORD dwCertEncodingType,
  [in]      PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [in]      void *pvDecodedSignPara,
  [in]      LPCWSTR pwszCNGPubKeyAlgid,
  [in]      LPCWSTR pwszCNGHashAlgid,
  [in]      BYTE *pbComputedHash,
  [in]      DWORD cbComputedHash,
  [out]     BYTE *pbSignature,
  [in, out] DWORD *pcbSignature
)
{...}

Parameter

[in] hKey

Ein Handle für den privaten CNG-Schlüssel (Cryptography API: Next Generation), der zum Signieren des Hash verwendet werden soll.

[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] pSignatureAlgorithm

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

[in] 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 Bezeichner des öffentlichen CNG-Algorithmus enthält, der pSignatureAlgorithm-pszObjId> entspricht.

[in] pwszCNGHashAlgid

Eine Unicode-Zeichenfolge, die den CNG-Hashalgorithmusbezeichner 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.

[out] pbSignature

Ein Zeiger auf die codierten Signaturbytes.

[in, out] pcbSignature

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_SIGN_AND_ENCODE_HASH_FUNC "CryptDllSignAndEncodeHash"

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