Funzione CertRetrieveLogoOrBiometricInfo (wincrypt.h)

La funzione CertRetrieveLogoOrBiometricInfo esegue un recupero URL di informazioni biometriche o logo specificate nell'estensione del certificato szOID_LOGOTYPE_EXT o szOID_BIOMETRIC_EXT . L'estensione szOID_BIOMETRIC_EXT (IETF RFC 3739) supporta l'aggiunta di una firma o una rappresentazione pictoriale del titolare del certificato. L'estensione szOID_LOGOTYPE_EXT (IETF RFC 3709) supporta l'aggiunta di rappresentazioni pictoriali organizzative nei certificati.

Sintassi

BOOL CertRetrieveLogoOrBiometricInfo(
  [in]  PCCERT_CONTEXT pCertContext,
  [in]  LPCSTR         lpszLogoOrBiometricType,
  [in]  DWORD          dwRetrievalFlags,
  [in]  DWORD          dwTimeout,
  [in]  DWORD          dwFlags,
        void           *pvReserved,
  [out] BYTE           **ppbData,
  [out] DWORD          *pcbData,
  [out] LPWSTR         *ppwszMimeType
);

Parametri

[in] pCertContext

Indirizzo di una struttura di CERT_CONTEXT che contiene il certificato.

[in] lpszLogoOrBiometricType

Indirizzo di una stringa ANSI con terminazione Null che contiene una stringa OID ( Object Identifier ) che identifica il tipo di informazioni da recuperare.

Questo parametro può anche contenere uno dei valori predefiniti seguenti.

Valore Significato
CERT_RETRIEVE_ISSUER_LOGO
Recuperare il logotype dell'autorità emittente del certificato.
CERT_RETRIEVE_SUBJECT_LOGO
Recuperare il tipo di logotipo del soggetto del certificato.
CERT_RETRIEVE_COMMUNITY_LOGO
Recuperare il tipo di logotipo della community dei certificati.
CERT_RETRIEVE_BIOMETRIC_PICTURE_TYPE
Recuperare l'immagine associata al certificato.
CERT_RETRIEVE_BIOMETRIC_SIGNATURE_TYPE
Recuperare la firma associata al certificato.

[in] dwRetrievalFlags

Set di flag che specificano la modalità di recupero delle informazioni. Questo parametro viene passato come dwRetrievalFlags nella funzione CryptRetrieveObjectByUrl .

[in] dwTimeout

Quantità massima di tempo, in millisecondi, di attesa del recupero.

[in] dwFlags

Questo parametro non viene usato e deve essere zero.

pvReserved

Questo parametro non viene usato e deve essere NULL.

[out] ppbData

Indirizzo di un puntatore BYTE che riceve il tipo di logotipo o i dati biometrici. Questa memoria deve essere liberata quando non è più necessaria passando questo puntatore alla funzione CryptMemFree .

[out] pcbData

Indirizzo di una variabile DWORD che riceve il numero di byte nel buffer ppbData .

[out] ppwszMimeType

Indirizzo di un puntatore a una stringa Unicode con terminazione Null che riceve il tipo MIME (Multipurpose Internet Mail Extensions) dei dati. Questo parametro può essere NULL se queste informazioni non sono necessarie. Questa memoria deve essere liberata quando non è più necessaria passando questo puntatore alla funzione CryptMemFree .

Questo indirizzo riceve sempre NULL per i tipi biometrici. È sempre necessario assicurarsi che questo parametro contenga un indirizzo di memoria valido prima di tentare di accedere alla memoria.

Valore restituito

Restituisce un valore diverso da zero se ha esito positivo o zero in caso contrario.

Per informazioni sugli errori estesi, chiamare GetLastError. I codici di errore possibili restituiti dalla funzione GetLastError includono, a titolo esemplificativo, quanto segue.

Codice restituito Descrizione
CRYPT_E_HASH_VALUE
Il valore hash calcolato non corrisponde al valore hash nel certificato.
CRYPT_E_NOT_FOUND
Il certificato non contiene l'estensione szOID_LOGOTYPE_EXT o szOID_BIOMETRIC_EXT oppure lpszLogoOrBiometricType specificato non è stato trovato.
E_INVALIDARG
Uno o più parametri non sono validi.
ERROR_INVALID_DATA
Non è possibile recuperare dati dall'URL specificato dall'estensione del certificato.
ERROR_NOT_SUPPORTED
Il certificato non supporta l'estensione richiesta.
NTE_BAD_ALGID
L'OID dell'algoritmo hash è sconosciuto.

Requisiti

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

Vedi anche

CryptMemFree