Condividi tramite


PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC funzione di callback (wincrypt.h)

La funzione di callback PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC viene chiamata per decrittografare una firma codificata e confrontarla con un hash calcolato.

Sintassi

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

Parametri

[in] dwCertEncodingType

Specifica il tipo di codifica utilizzata. È sempre accettabile specificare sia il certificato che i tipi di codifica dei messaggi combinandoli con un'operazione OR bit per bit, come illustrato nell'esempio seguente:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING I tipi di codifica attualmente definiti sono:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pPubKeyInfo

Indirizzo di una struttura di CERT_PUBLIC_KEY_INFO che contiene la chiave pubblica da utilizzare per verificare la firma. È possibile usarlo con CryptImportPublicKeyInfoEx2 per ottenere un BCRYPT_KEY_HANDLE.

[in] pSignatureAlgorithm

Puntatore a una struttura CRYPT_ALGORITHM_IDENTIFIER che contiene l'identificatore dell'oggetto firma (OID) e i relativi parametri con codifica facoltativa.

[in, optional] pvDecodedSignPara

Puntatore facoltativo alla struttura dei dati dei parametri della firma decodificata restituita in precedenza dalla funzione PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC .

[in] pwszCNGPubKeyAlgid

Stringa Unicode che contiene l'API di crittografia: identificatore dell'algoritmo di chiave pubblica CNG (Next Generation) che corrisponde a pSignatureAlgorithm-pszObjId>.

[in] pwszCNGHashAlgid

Stringa Unicode che contiene l'identificatore dell'algoritmo hash CNG che corrisponde a pSignatureAlgorithm-pszObjId> o a un identificatore dell'algoritmo hash in pvDecodedSignPara.

[in] pbComputedHash

Puntatore ai byte hash calcolati restituiti dalla funzione BCryptFinishHash che corrisponde a pwszCNGHashAlgid.

[in] cbComputedHash

Valore che rappresenta la lunghezza, in byte, dell'hash calcolato.

[in] pbSignature

Puntatore ai byte di firma codificati.

[in] cbSignature

Valore che rappresenta la lunghezza, in byte, della firma codificata.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce un valore diverso da zero (TRUE).

Se la funzione non riesce, restituisce zero (FALSE). Per informazioni sugli errori estesi, chiamare GetLastError.

Se questa funzione di callback non supporta l'algoritmo di firma, deve restituire FALSE e chiamare SetLastError con ERROR_NOT_SUPPORTED.

Commenti

È possibile usare le funzioni di supporto OID per distribuire questa funzione di callback. Wincrypt.h definisce la costante seguente a questo scopo.

Costante Definizione
CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC "CryptDllVerifyEncodedSignature"

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wincrypt.h