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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Tipo di dati pvData: puntatore a un CRYPT_DATA_BLOB
La struttura CRYPT_DATA_BLOB specifica il nome visualizzato del certificato. |
|
Tipo di dati pvData: puntatore a un CRYPT_HASH_BLOB
Questa proprietà viene impostata in modo implicito da una chiamata a CertGetCertificateContextProperty. |
|
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 |
|
Tipo di dati pvData: puntatore a un CRYPT_DATA_BLOB
Questa proprietà viene in genere impostata in modo implicito da una chiamata a CertGetCertificateContextProperty. |
|
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 . |
|
Tipo di dati pvData: puntatore a un CRYPT_KEY_PROV_INFO
La struttura CRYPT_KEY_PROV_INFO specifica la chiave privata del certificato. |
|
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. |
|
Tipo di dati pvData: puntatore a un CRYPT_HASH_BLOB
Questa proprietà viene impostata in modo implicito da una chiamata a CertGetCertificateContextProperty. |
|
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. |
|
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. |
|
Tipo di dati pvData: puntatore a un CRYPT_HASH_BLOB
Questa proprietà viene impostata in modo implicito da una chiamata a CertGetCertificateContextProperty. |
|
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.
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 |
---|---|
|
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 |