Funzione CryptHashToBeSigned (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 CryptHashToBeSigned calcola l'hash del contenuto codificato da un certificato firmato e codificato. L'hash viene eseguito solo sul contenuto con codifica "da firmare" e sulla relativa firma.

Sintassi

BOOL CryptHashToBeSigned(
  [in]      HCRYPTPROV_LEGACY hCryptProv,
  [in]      DWORD             dwCertEncodingType,
  [in]      const BYTE        *pbEncoded,
  [in]      DWORD             cbEncoded,
  [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] 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] pbEncoded

Indirizzo di un buffer che contiene il contenuto da hashare. Si tratta della forma codificata di un CERT_SIGNED_CONTENT_INFO.

[in] cbEncoded

Dimensione del buffer, in byte.

[out] pbComputedHash

Puntatore a un buffer per ricevere l'hash calcolato.

Questo parametro può essere NULL per impostare le dimensioni di queste informazioni per scopi di allocazione della memoria. 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 potrebbero 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.
NTE_BAD_ALGID
L'identificatore dell'oggetto (OID) dell'algoritmo di firma non esegue il mapping a un algoritmo hash noto o supportato.
 

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

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CryptHashCertificate

CryptHashPublicKeyInfo

Funzioni Gestione dati