Funzione CertGetCRLContextProperty (wincrypt.h)

La funzione CertGetCRLContextProperty ottiene una proprietà estesa per il contesto CRL ( Certificate Revoche List ) specificato.

Sintassi

BOOL CertGetCRLContextProperty(
  [in]      PCCRL_CONTEXT pCrlContext,
  [in]      DWORD         dwPropId,
  [out]     void          *pvData,
  [in, out] DWORD         *pcbData
);

Parametri

[in] pCrlContext

Puntatore alla struttura CRL_CONTEXT .

[in] dwPropId

Identifica la proprietà da recuperare. Gli identificatori attualmente definiti e il tipo di dati da restituire in pvData sono elencati nella tabella seguente.

Valore Significato
CERT_ACCESS_STATE_PROP_ID
Tipo di dati per pvData: puntatore a un DWORD

Restituisce un valore DWORD che indica se le operazioni di scrittura nel certificato sono persistenti. Il valore DWORD non viene impostato se il certificato si trova in un archivio di memoria o in un archivio basato sul Registro di sistema aperto come di sola lettura.

CERT_ARCHIVED_PROP_ID
Tipo di dati per pvData: NULL

Indica che il certificato viene ignorato durante le enumerazioni. Un certificato con questo set di proprietà viene trovato con operazioni di ricerca esplicite, ad esempio quelle usate per trovare un certificato con un hash specifico o un numero di serie. Nessun dato in pvData è associato a questa proprietà.

CERT_AUTO_ENROLL_PROP_ID
Tipo di dati per pvData: puntatore a una matrice BYTE

Restituisce una stringa Unicode con terminazione Null che denomina il tipo di certificato per il quale il certificato è stato registrato automaticamente.

CERT_CTL_USAGE_PROP_ID
Tipo di dati per pvData: puntatore a una matrice BYTE

Restituisce una matrice di byte contenente una struttura di CTL_USAGE con codifica ASN.1 (Abstract Syntax Notation One).

CERT_DESCRIPTION_PROP_ID
Tipo di dati per pvData: puntatore a una matrice BYTE

Restituisce la proprietà visualizzata dall'interfaccia utente del certificato. Questa proprietà consente all'utente di descrivere l'uso del certificato.

CERT_ENHKEY_USAGE_PROP_ID
Tipo di dati per pvData:

Restituisce una matrice di byte contenente una struttura con codifica ASN.1 CERT_ENHKEY_USAGE .

CERT_FRIENDLY_NAME_PROP_ID
Tipo di dati per pvData: puntatore a una matrice BYTE

Restituisce una stringa di caratteri Unicode con terminazione Null che contiene il nome visualizzato per LRL.

CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Tipo di dati per pvData: puntatore a una stringa Unicode con terminazione Null.

Restituisce una stringa contenente un set di coppie di chiavi pubbliche L"<PUBKEY>/<BITLENGTH>" e di lunghezza di bit. Il punto e virgola L";" viene usato come delimitatore.

Il <valore PUBKEY> identifica l'algoritmo di chiave pubblica CNG. Sono supportati gli algoritmi seguenti:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Viene restituita una <coppia PUBKEY>/<BITLENGTH> per ogni certificato nella catena di autorità di certificazione CRL esclusa la foglia. Questa proprietà viene impostata solo quando una risposta OCSP con una catena di firma indipendente viene convertita in un CRL.
Nota Questa proprietà non può essere recuperata per un certificato del firmatario OCSP delegato. Un certificato del firmatario delegato viene firmato con la stessa chiave usata per firmare il certificato soggetto e viene controllato.
 
Di seguito è riportato un esempio:

: L"RSA/2048; RSA/4096"

CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID
Tipo di dati per pvData: puntatore a una stringa Unicode con terminazione Null.

Restituisce una stringa contenente un set di coppie di algoritmi L"<SIGNATURE>/<HASH>". Il punto e virgola L";" viene usato come delimitatore tra coppie.

Questa proprietà viene impostata solo quando una risposta OCSP viene convertita in un CRL. Per un certificato del firmatario OCSP delegato, viene restituita solo la coppia di algoritmi per il certificato del firmatario. Per una catena di certificati del firmatario OCSP indipendente, viene restituita una coppia di algoritmi per ogni certificato nella catena esclusa la radice.

Il <valore SIGNATURE> identifica l'algoritmo di chiave pubblica CNG. Sono supportati gli algoritmi seguenti:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Il <valore HASH> identifica l'algoritmo hash CNG. Sono supportati gli algoritmi seguenti:
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
Di seguito viene riportato un esempio:
  • L"RSA/SHA256; RSA/SHA256"
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Tipo di dati per pvData: puntatore a un valore DWORD .

Restituisce la lunghezza, in bit, della chiave pubblica nel certificato dell'autorità di certificazione CRL. Questa proprietà è applicabile anche a una risposta OCSP che è stata convertita in un CRL.

Windows 8 e Windows Server 2012: inizia il supporto per questa proprietà.

CERT_KEY_CONTEXT_PROP_ID
Tipo di dati per pvData: puntatore a un CERT_KEY_CONTEXT

Restituisce una struttura CERT_KEY_CONTEXT .

CERT_KEY_IDENTIFIER_PROP_ID
Tipo di dati per pvData: puntatore a una matrice BYTE

Se non esiste, cerca l'estensione szOID_SUBJECT_KEY_IDENTIFIER. In caso di errore, viene eseguito un hash SHA1 sul membro SubjectPublicKeyInfo del certificato per produrre i valori dell'identificatore.

CERT_KEY_PROV_HANDLE_PROP_ID
Tipo di dati per pvData: puntatore a un HCRYPTPROV

Restituisce l'handle del provider ottenuto dal CERT_KEY_CONTEXT_PROP_ID.

CERT_KEY_PROV_INFO_PROP_ID
Tipo di dati per pvData: puntatore a un CRYPT_KEY_PROV_INFO

Restituisce un puntatore a un CRYPT_KEY_PROV_INFO.

CERT_KEY_SPEC_PROP_ID
Tipo di dati per pvData: puntatore a un DWORD

Restituisce un valore DWORD che specifica la chiave privata ottenuta da CERT_KEY_CONTEXT_PROP_ID proprietà, se presente. In caso contrario, se CERT_KEY_PROV_INFO_PROP_ID esiste, è l'origine di dwKeySpec.

CERT_MD5_HASH_PROP_ID
Tipo di dati per pvData: puntatore a una matrice BYTE

Restituisce l'hash MD5. Se l'hash non esiste, viene calcolato usando CryptHashCertificate.

CERT_NEXT_UPDATE_LOCATION_PROP_ID
Tipo di dati per pvData: puntatore a una matrice BYTE

Restituisce la struttura di CERT_ALT_NAME_INFO codificata ASN.1.

CERT_NEXT_UPDATE_LOCATION_PROP_ID è attualmente usato solo con le dll.

CERT_PVK_FILE_PROP_ID
Tipo di dati per pvData: puntatore a una matrice BYTE

Restituisce una stringa Unicode con terminazione null, con caratteri wide che specifica il nome del file contenente la chiave privata associata alla chiave pubblica del certificato.

CERT_SHA1_HASH_PROP_ID
Tipo di dati per pvData: puntatore a una matrice BYTE

Restituisce l'hash SHA1. Se l'hash non esiste, viene calcolato usando CryptHashCertificate.

CERT_SIGN_HASH_CNG_ALG_PROP_ID
Tipo di dati pvData: puntatore a una stringa Unicode con terminazione null.

Restituisce la stringa L"<SIGNATURE>/<HASH>" che rappresenta la firma del certificato. Il <valore SIGNATURE> identifica l'algoritmo di chiave pubblica CNG. Sono supportati gli algoritmi seguenti:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Il <valore HASH identifica l'algoritmo hash> CNG. Sono supportati gli algoritmi seguenti:
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
Di seguito sono riportati alcuni esempi comuni:
  • L"RSA/SHA1"
  • L"RSA/SHA256"
  • L"ECDSA/SHA256"
Questa proprietà è applicabile anche a una risposta OCSP che è stata convertita in un CRL.

Windows 8 e Windows Server 2012: viene avviato il supporto per questa proprietà.

CERT_SIGNATURE_HASH_PROP_ID
Tipo di dati per pvData: puntatore a una matrice BYTE

Restituisce l'hash della firma. Se l'hash non esiste, viene calcolato con CryptHashToBeSigned. La lunghezza dell'hash è di 20 byte per SHA e 16 per MD5.

 

Per molti identificatori di proprietà, pvData punta a una matrice di byte e non a un CRYPT_DATA_BLOB come indicato dal parametro pvData in CertSetCRLContextProperty.

Per altre informazioni su ogni identificatore di proprietà, vedere la documentazione sul parametro dwPropId in CertSetCertificateContextProperty.

[out] pvData

Puntatore a un buffer per ricevere i dati come determinato da dwPropId. Le strutture a cui fa riferimento i membri di una struttura restituita vengono restituite anche seguendo la struttura di base. Pertanto, le dimensioni contenute in pcbData spesso superano le dimensioni della struttura di base.

Questo parametro può essere NULL per impostare le dimensioni delle informazioni a scopo di allocazione della memoria. Per altre informazioni, vedere Recupero dei dati di lunghezza sconosciuta.

[in, out] pcbData

Puntatore a un valore DWORD che specifica le dimensioni, in byte, del buffer a cui punta il parametro pvData . Quando la funzione restituisce, il valore DWORD contiene il numero di byte da archiviare 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 base all'input, le dimensioni del buffer vengono in genere specificate abbastanza grandi per garantire che i dati di output più grandi siano adatti 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, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE.

Si noti che gli errori della funzione denominata CryptHashCertificate possono essere propagati a questa funzione. Per informazioni sull'errore estese, chiamare GetLastError. Alcuni codici di errore possibili seguono.

Codice restituito Descrizione
CRYPT_E_NOT_FOUND
La classe CRL non dispone della proprietà specificata.
ERROR_MORE_DATA
Se il buffer specificato dal parametro pvData 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 pcbData.

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

CertEnumCRLContextProperties

CertGetCertificateContextProperty

CryptHashCertificate

Funzioni delle proprietà estese