Condividi tramite


Funzione CryptHashPublicKeyInfo (wincrypt.h)

Importante Questa API è deprecata. Il software nuovo e esistente deve iniziare a usare le API di nuova generazione di crittografia. Microsoft può rimuovere questa API nelle versioni future.
 
La funzione CryptHashPublicKeyInfo codifica le informazioni sulla chiave pubblica in una struttura CERT_PUBLIC_KEY_INFO e calcola l'hash dei byte codificati. L'hash creato viene usato con funzioni di identificatore chiave.

Sintassi

BOOL CryptHashPublicKeyInfo(
  [in]      HCRYPTPROV_LEGACY     hCryptProv,
  [in]      ALG_ID                Algid,
  [in]      DWORD                 dwFlags,
  [in]      DWORD                 dwCertEncodingType,
  [in]      PCERT_PUBLIC_KEY_INFO pInfo,
  [out]     BYTE                  *pbComputedHash,
  [in, out] DWORD                 *pcbComputedHash
);

Parametri

[in] hCryptProv

Questo parametro non viene usato e deve essere impostato su NULL.

Windows Server 2003 e Windows XP: Handle del provider di servizi di crittografia da usare per calcolare l'hash. Il tipo di dati di questo parametro è HCRYPTPROV.

A meno che non vi sia un motivo forte per il passaggio di un provider di crittografia specifico in hCryptProv, zero viene passato. Il passaggio di zero causa l'acquisizione del provider RSA o Digital Signature Standard (DSS) predefinito prima di eseguire operazioni hash, verifica della firma o crittografia dei destinatari.

[in] Algid

Struttura ALG_ID che specifica l'algoritmo hash CryptoAPI da usare. Se Algid è zero, viene usato l'algoritmo hash predefinito MD5.

[in] dwFlags

Valori da passare a CryptCreateHash.

[in] dwCertEncodingType

Specifica il tipo di codifica usato. È sempre accettabile specificare sia i tipi di codifica del certificato che dei messaggi combinandoli con un'operazione bit per bit or , 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] pInfo

Puntatore a una struttura CERT_PUBLIC_KEY_INFO contenente le informazioni sulla chiave pubblica da codificare e hash.

[out] pbComputedHash

Puntatore a un buffer per ricevere l'hash calcolato.

Per impostare le dimensioni di queste informazioni per scopi di allocazione della memoria, questo parametro può essere NULL. Per altre informazioni, vedere Recupero dei dati di lunghezza sconosciuta.

[in, out] pcbComputedHash

Puntatore a un DWORD contenente le dimensioni, in byte, del buffer a cui punta il parametro pbComputedHash . Quando la funzione restituisce, la DWORD contiene il numero di byte archiviati nel buffer.

Nota Quando si elaborano i dati restituiti nel buffer, le applicazioni devono usare le dimensioni effettive dei dati restituiti. Le dimensioni effettive possono essere leggermente inferiori rispetto alle dimensioni del buffer specificato nell'input. In input, le dimensioni del buffer vengono in genere specificate abbastanza grandi per garantire che i dati di output più grandi possibili si adattano al buffer. Nell'output la variabile a cui punta questo parametro viene aggiornata per riflettere le dimensioni effettive dei dati copiati nel buffer.
 

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce non zero (TRUE).

Se la funzione ha esito negativo, restituisce zero (FALSE). Per informazioni sull'errore estese, chiamare GetLastError.

Nota Gli errori delle funzioni denominate CryptCreateHash, CryptGetHashParam e CryptHashData possono essere propagati a questa funzione. Questa funzione contiene i codici di errore seguenti.
 
Codice restituito Descrizione
ERROR_MORE_DATA
Se il buffer specificato dal parametro pbComputedHash non è sufficiente per contenere i dati restituiti, la funzione imposta il codice ERROR_MORE_DATA e archivia le dimensioni del buffer necessarie, in byte, nella variabile puntata da pcbComputedHash.
ERROR_FILE_NOT_FOUND
Tipo di codifica del certificato non valido. Attualmente è supportato solo X509_ASN_ENCODING.
 

Se la funzione ha esito negativo, GetLastError potrebbe restituire un errore di codifica astratta Notation One (ASN.1). Per informazioni su questi errori, vedere Codifica ASN.1/Decodifica dei valori restituiti.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CryptHashCertificate

CryptHashToBeSigned

Funzioni Gestione dati