Funzione CertSetCTLContextProperty (wincrypt.h)

La funzione CertSetCTLContextProperty imposta una proprietà estesa per il contesto CTL ( Certificate Trust List ) specificato.

Sintassi

BOOL CertSetCTLContextProperty(
  [in] PCCTL_CONTEXT pCtlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

Parametri

[in] pCtlContext

Puntatore alla struttura CTL_CONTEXT .

[in] dwPropId

Identifica la proprietà da impostare. Il valore di dwPropId determina il tipo e il contenuto del parametro pvData . Gli identificatori attualmente definiti e i relativi tipi pvData correlati sono i seguenti.

Valore Significato
CERT_ARCHIVED_PROP_ID
Tipo di dati pvData: NULL

Indica che il certificato viene ignorato durante le enumerazioni. Un certificato con questo set di proprietà viene ancora trovato con operazioni di ricerca esplicite, ad esempio la ricerca di un certificato con un hash specifico o un numero di serie specifico.

CERT_AUTO_ENROLL_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_DATA_BLOB

Proprietà impostata dopo la registrazione di un certificato tramite Registrazione automatica. La struttura CRYPT_DATA_BLOB a cui punta pvData include un nome Unicode con terminazione Null del tipo di certificato per il quale i certificati sono stati registrati automaticamente. Tutte le chiamate successive a Registrazione automatica per il certificato controllano la presenza di questa proprietà per determinare se il certificato è stato registrato.

CERT_CTL_USAGE_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_DATA_BLOB

pvData punta a una struttura CRYPT_DATA_BLOB contenente una struttura ASN.1 ( Abstract Syntax Notation One ) codificata CTL_USAGE . Questa struttura è stata codificata usando CryptEncodeObject con X509_ENHANCED_KEY_USAGE valore impostato.

CERT_DESCRIPTION_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_DATA_BLOB

Set di proprietà e visualizzati dall'interfaccia utente del certificato. Questa proprietà consente all'utente di descrivere l'uso del certificato.

CERT_ENHKEY_USAGE_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_DATA_BLOB

Struttura CRYPT_DATA_BLOB contenente una struttura di CERT_ENHKEY_USAGE con codifica ASN.1. Questa struttura è stata codificata usando CryptEncodeObject con X509_ENHANCED_KEY_USAGE valore impostato.

CERT_FRIENDLY_NAME_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_DATA_BLOB

La struttura CRYPT_DATA_BLOB specifica il nome visualizzato del certificato.

CERT_HASH_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_HASH_BLOB

Questa proprietà viene impostata in modo implicito da una chiamata a CertGetCertificateContextProperty.

CERT_KEY_CONTEXT_PROP_ID
Tipo di dati pvData: puntatore a un CERT_KEY_CONTEXT

La struttura CERT_KEY_CONTEXT contiene sia il valore HCRYPTPROV che la specifica della chiave privata. Per altre informazioni sulle impostazioni del membro hCryptProv e del dwFlags , vedere CERT_KEY_PROV_HANDLE_PROP_ID, di seguito. Si noti che è possibile aggiungere più membri della struttura CERT_KEY_CONTEXT per questa proprietà. In tal caso, il valore del membro cbSize verrà modificato di conseguenza. Il membro cbSize deve essere impostato sulle dimensioni della struttura CERT_KEY_CONTEXT

CERT_KEY_IDENTIFIER_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_DATA_BLOB

Questa proprietà viene in genere impostata in modo implicito da una chiamata a CertGetCertificateContextProperty.

CERT_KEY_PROV_HANDLE_PROP_ID
Tipo di dati pvData: puntatore a un HCRYPTPROV

Viene passato un handle HCRYPTPROV per la chiave privata del certificato. Il membro hCryptProv della struttura CERT_KEY_CONTEXT viene aggiornato se esistente. Se non esiste, viene creato con dwKeySpec inizializzato da CERT_KEY_PROV_INFO_PROP_ID. Se CERT_STORE_NO_CRYPT_RELEASE_FLAG non è impostato, il valore hCryptProv viene rilasciato in modo implicito quando la proprietà è impostata su NULL o sulla liberazione finale della struttura CERT_CONTEXT .

CERT_KEY_PROV_INFO_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_KEY_PROV_INFO

La struttura CRYPT_KEY_PROV_INFO specifica la chiave privata del certificato.

CERT_KEY_SPEC_PROP_ID
Tipo di dati pvData: puntatore a un DWORD

Il valore DWORD specifica la chiave privata. Il membro dwKeySpec della struttura CERT_KEY_CONTEXT viene aggiornato se esistente. In caso contrario, viene creato con hCryptProv impostato su zero.

CERT_MD5_HASH_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_HASH_BLOB

Questa proprietà viene impostata in modo implicito da una chiamata a CertGetCertificateContextProperty.

CERT_NEXT_UPDATE_LOCATION_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_DATA_BLOB

La struttura CRYPT_DATA_BLOB contiene una struttura con codifica ASN.1 CERT_ALT_NAME_INFO codificata usando CryptEncodeObject con il valore X509_ALTERNATE_NAME impostato. CERT_NEXT_UPDATE_LOCATION_PROP_ID è attualmente usato solo con elenchi di scopi consentiti.

CERT_PVK_FILE_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_DATA_BLOB

La struttura CRYPT_DATA_BLOB specifica il nome di un file contenente la chiave privata associata alla chiave pubblica del certificato. All'interno della struttura CRYPT_DATA_BLOB , il membro pbData è un puntatore a una stringa Unicode con terminazione Null, a caratteri wide e al membro cbData indica la lunghezza della stringa.

CERT_SHA1_HASH_PROP_ID
Tipo di dati pvData: puntatore a un CRYPT_HASH_BLOB

Questa proprietà viene impostata in modo implicito da una chiamata a CertGetCertificateContextProperty.

CERT_SIGNATURE_HASH_PROP_ID
CRYPT_HASH_BLOB
Tipo di dati pvData: puntatore a un CRYPT_HASH_BLOB

Se non esiste un hash della firma, viene calcolato con CryptHashToBeSigned. pvData punta a un hash esistente o calcolato. In genere, la lunghezza dell'hash è di 20 byte per SHA e 16 per MD5.

 

In genere, viene impostata solo la proprietà CERT_NEXT_UPDATE_LOCATION_PROP_ID.

È possibile definire altri tipi dwPropId dall'utente 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 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 CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG è impostato, 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
Identificatore di proprietà non valido. Per informazioni dettagliate, vedere CertSetCertificateContextProperty.

Commenti

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

Esempio

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

CertGetCTLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

Funzioni di proprietà estese