Funzione CertSetCRLContextProperty (wincrypt.h)

La funzione CertSetCRLContextProperty imposta una proprietà estesa per il contesto di revoche di certificati specificato.

Sintassi

BOOL CertSetCRLContextProperty(
  [in] PCCRL_CONTEXT pCrlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

Parametri

[in] pCrlContext

Puntatore alla struttura CRL_CONTEXT .

[in] dwPropId

Identifica la proprietà da impostare. Il valore dwPropId determina il tipo e il contenuto del parametro pvData . Gli identificatori attualmente definiti e il tipo di dati da restituire in pvData sono elencati nella tabella seguente.

In genere, vengono impostate solo le proprietà seguenti:

  • CERT_HASH_PROP_ID
  • CERT_SHA1_HASH_PROP_ID
  • CERT_MD5_HASH_PROP_ID
  • CERT_SIGNATURE_HASH_PROP_ID
Valore Significato
CERT_ACCESS_STATE_PROP_ID
Tipo di dati per pvData: puntatore a una DWORD

Imposta un valore DWORD che indica se le operazioni di scrittura sul certificato vengono mantenute. Il valore DWORD non è 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

Imposta una stringa Unicode con terminazione null che denomina il tipo di certificato per cui è stato registrato automaticamente il certificato.

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

Imposta una matrice di byte contenente una struttura astratta notazione 1 (ASN.1) codificata CTL_USAGE .

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

Imposta 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:

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

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

Imposta una stringa di caratteri Unicode con terminazione null contenente il nome visualizzato per la CRL.

CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Tipo di dati per pvData: puntatore a una struttura CRYPT_DATA_BLOB .

Imposta una stringa contenente un set di algoritmi di chiave pubblica L"<PUBKEY>/<BITLENGTH>" e coppie di lunghezza 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)
Una <coppia PUBKEY>/<BITLENGTH> è impostata per ogni certificato nella catena di autorità di certificazione CRL, esclusa la foglia. Questa proprietà può essere impostata quando una risposta OCSP con una catena di firma indipendente viene convertita in un CRL.
Nota Questa proprietà non deve essere impostata per un certificato di firma 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 struttura CRYPT_DATA_BLOB .

Imposta una stringa che contiene 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 di firma OCSP delegato, viene restituita solo la coppia di algoritmi per il certificato del firmatario. Per una catena di certificati di firma OCSP indipendente, viene restituita una coppia di algoritmi per ogni certificato nella catena esclusa dalla 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 è riportato un esempio:
  • L"RSA/SHA256; RSA/SHA256"
Questa proprietà viene impostata in modo esplicito dalle funzioni di revoca di verifica.
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Tipo di dati per pvData: puntatore a una struttura CRYPT_DATA_BLOB .

Imposta la lunghezza, in bit, della chiave pubblica nel certificato dell'autorità di certificazione CRL. Questa proprietà è applicabile anche a un OCSP convertito in un CRL.

Questa proprietà viene impostata in modo esplicito dalle funzioni di revoca di verifica.

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

CERT_KEY_CONTEXT_PROP_ID
Tipo di dati per pvData: puntatore a un CERT_KEY_CONTEXT

Imposta una struttura CERT_KEY_CONTEXT .

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

Imposta l'handle del provider ottenuto dall'CERT_KEY_CONTEXT_PROP_ID.

CERT_KEY_PROV_INFO_PROP_ID
Tipo di dati per pvData: puntatore a un CRYPT_KEY_PROV_INFO

Imposta un puntatore su una struttura CRYPT_KEY_PROV_INFO .

CERT_KEY_SPEC_PROP_ID
Tipo di dati per pvData: puntatore a una DWORD

Imposta un valore DWORD che specifica la chiave privata ottenuta dalla proprietà CERT_KEY_CONTEXT_PROP_ID 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

Imposta l'hash MD5. È possibile calcolare l'hash usando la funzione CryptHashCertificate .

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

Imposta la struttura di CERT_ALT_NAME_INFO con codifica ASN.1 in un elenco di scopi consentiti.

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

Imposta una stringa di caratteri Unicode con terminazione Null, wide che specifica il nome del file che contiene la chiave privata associata alla chiave pubblica del certificato.

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

Imposta l'hash SHA1. È possibile calcolare l'hash usando CryptHashCertificate.

CERT_SIGN_HASH_CNG_ALG_PROP_ID
Tipo di dati pvData: puntatore a una struttura CRYPT_DATA_BLOB .

Imposta 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.

Questa proprietà viene impostata in modo esplicito dalle funzioni di revoca di verifica.

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

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

Imposta 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.

 

L'utente può definire tipi dwPropId aggiuntivi usando valori DWORD da CERT_FIRST_USER_PROP_ID a CERT_LAST_USER_PROP_ID. Per tutti i tipi dwPropId definiti dall'utente, pvData punta a un CRYPT_DATA_BLOB codificato.

Per tutti gli altri identificatori di proprietà, pvData punta a una struttura CRYPT_DATA_BLOB codificata.

[in] dwFlags

CERT_STORE_NO_CRYPT_RELEASE_FLAG può essere impostato per le proprietà CERT_KEY_PROV_HANDLE_PROP_ID o CERT_KEY_CONTEXT_PROP_ID dwPropId .

Se il valore CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG è impostato, tutti gli errori di scrittura del provider vengono ignorati e le proprietà del contesto memorizzato nella cache vengono sempre impostate.

Se la CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG è impostata, qualsiasi set di proprietà non viene salvato in modo permanente.

[in] pvData

Puntatore a un tipo di dati determinato dal valore passato in dwPropId.

Nota Per qualsiasi dwPropId, l'impostazione di pvData su NULL elimina la proprietà .
 

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE. Per informazioni sugli errori estesi, chiamare GetLastError. Un possibile codice di errore è il seguente.

Codice restituito Descrizione
E_INVALIDARG
La proprietà non è valida. L'identificatore specificato è maggiore di 0x0000FFFF oppure, per la proprietà CERT_KEY_CONTEXT_PROP_ID, è stato specificato un membro cbSize non valido nella struttura CERT_KEY_CONTEXT .

Commenti

Se esiste già una proprietà, il valore precedente viene sostituito.

Esempio

Per un esempio che usa questa funzione, vedere Esempio di programma C: Recupero e impostazione delle proprietà del certificato.

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

CERT_ALT_NAME_INFO

CERT_CONTEXT

CERT_ENHKEY_USAGE

CERT_KEY_CONTEXT

CRL_CONTEXT

CRYPT_DATA_BLOB

CRYPT_HASH_BLOB

CRYPT_KEY_PROV_INFO

CTL_USAGE

CertGetCRLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

CryptHashToBeSigned

Funzioni di proprietà estese