Funzione CryptCreateKeyIdentifierFromCSP (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 CryptCreateKeyIdentifierFromCSP crea un identificatore di chiave da un provider di servizi di crittografia(CSP) CRYPT_INTEGER_BLOB.

Questa funzione converte un PUBLICKEYSTRUC di un CSP in una struttura X.509CERT_PUBLIC_KEY_INFO e la codifica. La struttura codificata viene quindi hashata con l'algoritmo SHA1 per ottenere l'identificatore della chiave.

Sintassi

BOOL CryptCreateKeyIdentifierFromCSP(
  [in]      DWORD                dwCertEncodingType,
  [in]      LPCSTR               pszPubKeyOID,
  [in]      const PUBLICKEYSTRUC *pPubKeyStruc,
  [in]      DWORD                cbPubKeyStruc,
  [in]      DWORD                dwFlags,
  [in]      void                 *pvReserved,
  [out]     BYTE                 *pbHash,
  [in, out] DWORD                *pcbHash
);

Parametri

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

Puntatore all'identificatore dell'oggetto chiave pubblica (OID). Un valore che non è NULL esegue l'override dell'OID predefinito ottenuto dal membro aiKeyAlg della struttura a cui fa riferimento pPubKeyStruc. Per usare l'OID predefinito, impostare pszPubKeyOID su NULL.

[in] pPubKeyStruc

Puntatore a una struttura PUBLICKEYSTRUC . Nel caso predefinito, il membro aiKeyAlg della struttura a cui fa riferimento pPubKeyStruc viene usato per trovare l'OID della chiave pubblica. Quando il valore di pszPubKeyOID non è NULL, esegue l'override del valore predefinito.

[in] cbPubKeyStruc

Dimensioni, in byte, di PUBLICKEYSTRUC.

[in] dwFlags

Riservato per l'uso futuro e deve essere zero.

[in] pvReserved

Riservato per l'uso futuro e deve essere NULL.

[out] pbHash

Puntatore a un buffer per ricevere l'hash della chiave pubblica e l'identificatore della chiave.

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

[in, out] pcbHash

Puntatore a un DWORD che specifica le dimensioni, in byte, del buffer a cui punta il parametro pbHash . Quando la funzione restituisce, la DWORD contiene il numero di byte archiviati nel buffer. Usando l'hash SHA1, la lunghezza del buffer richiesto è venti.

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.

Requisiti

Requisito Valore
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

CryptEnumKeyIdentifierProperties

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty

Funzioni identificatore chiave