Funzione CertSetCertificateContextProperty (wincrypt.h)
La funzione CertSetCertificateContextProperty
Sintassi
BOOL CertSetCertificateContextProperty(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwPropId,
[in] DWORD dwFlags,
[in] const void *pvData
);
Parametri
[in] pCertContext
Puntatore a una struttura CERT_CONTEXT.
[in] dwPropId
Proprietà da impostare. Il valore di dwPropId determina il tipo e il contenuto del parametro pvData. Gli identificatori attualmente definiti e i relativi tipi di pvData sono i seguenti.
CERT_ACCESS_STATE_PROP_ID
Tipo di dati di
Restituisce un valore DWORD
CERT_AIA_URL_RETRIEVED_PROP_ID
Questo identificatore è riservato.
CERT_ARCHIVED_KEY_HASH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura di CRYPT_HASH_BLOB.
Questa proprietà salva una chiave crittografata hash per il contesto del certificato.
CERT_ARCHIVED_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Indica che il del certificato {0,NULL}
.
CERT_AUTHORITY_INFO_ACCESS_PROP_ID
Questo identificatore è riservato.
CERT_AUTO_ENROLL_PROP_ID
Tipo di dati di pvData: puntatore a una struttura 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 cui il certificato è stato registrato automaticamente. Eventuali chiamate successive a Registrazione automatica per il certificato controllano la presenza di questa proprietà per determinare se il certificato è stato registrato.
CERT_AUTO_ENROLL_RETRY_PROP_ID
Questo identificatore è riservato.
CERT_BACKED_UP_PROP_ID
Questo identificatore è riservato.
CERT_CA_DISABLE_CRL_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Disabilita recupero dell'elenco di revoche di certificati (CRL) per i certificati usati dall'autorità di certificazione (CA). Se il certificato DELLA CA contiene questa proprietà, deve includere anche la proprietà CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID.
CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Contiene l'elenco degli URL (OCSP) del protocollo di stato dei certificati online
CERT_CROSS_CERT_DIST_POINTS_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Imposta il percorso dei certificati incrociati. Questo valore è applicabile solo ai certificati e non ai elenchi di revoche di certificati (CRL) o elenchi di attendibilità dei certificati (CRL). La struttura
CERT_CTL_USAGE_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
La struttura CRYPT_DATA_BLOB contiene una struttura con codifica ASN.1 CTL_USAGE. Questa struttura viene codificata usando la funzione CryptEncodeObject con il valore X509_ENHANCED_KEY_USAGE impostato.
CERT_DATE_STAMP_PROP_ID
Tipo di dati di
Questa proprietà imposta l'ora in cui il certificato è stato aggiunto all'archivio.
CERT_DESCRIPTION_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Proprietà impostata e visualizzata dall'interfaccia utente del certificato. Questa proprietà consente all'utente di descrivere l'uso del certificato.
CERT_EFS_PROP_ID
Questo identificatore è riservato.
CERT_ENHKEY_USAGE_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Proprietà che indica che il parametro pvData
CERT_ENROLLMENT_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Informazioni di registrazione della richiesta in sospeso che contiene RequestID, CADNSName, CAName e DisplayName. Il formato dei dati è definito come segue.
Byte | Contenuto |
---|---|
Primi 4 byte | ID richiesta in sospeso |
4 byte successivi | Dimensioni CADNSName, in caratteri, incluso il carattere Null di terminazione, seguito dalla stringa CADNSName con carattere null di terminazione |
4 byte successivi | Dimensione CAName, in caratteri, incluso il carattere Null di terminazione, seguito dalla stringa CAName con carattere null di terminazione |
4 byte successivi | Dimensioni DisplayName, in caratteri, incluso il carattere Null di terminazione, seguito dalla stringa DisplayName con carattere null di terminazione |
CERT_EXTENDED_ERROR_INFO_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà imposta una stringa che contiene informazioni estese sull'errore per il contesto del certificato.
CERT_FORTEZZA_DATA_PROP_ID
Questo identificatore è riservato.
CERT_FRIENDLY_NAME_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
La struttura CRYPT_DATA_BLOB contiene il nome visualizzato del certificato.
CERT_HASH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà viene impostata in modo implicito da una chiamata alla funzione CertGetCertificateContextProperty.
CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID
Tipo di dati di pvData: puntatore a un tipo di dati HCRYPTPROV_OR_NCRYPT_KEY_HANDLE.
Questa proprietà chiama NCryptIsKeyHandle per determinare se si tratta di un NCRYPT_KEY_HANDLE. Per un NCRYPT_KEY_HANDLE, imposta CERT_NCRYPT_KEY_HANDLE_PROP_ID; in caso contrario, imposta CERT_KEY_PROV_HANDLE_PROP_ID.
CERT_HCRYPTPROV_TRANSFER_PROP_ID
Imposta l'handle della chiave CAPI associata al certificato.
CERT_IE30_RESERVED_PROP_ID
Questo identificatore è riservato.
CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà imposta il hash
CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
La struttura CRYPT_DATA_BLOB contiene l'hash MD5 del nome dell'autorità emittente e del numero di serie del certificato.
CERT_KEY_CONTEXT_PROP_ID
Tipo di dati di pvData: puntatore a una struttura di CERT_KEY_CONTEXT.
La struttura specifica la chiave privata del certificato. Contiene sia la
CERT_KEY_IDENTIFIER_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà viene in genere impostata in modo implicito da una chiamata alla funzione CertGetCertificateContextProperty.
CERT_KEY_PROV_HANDLE_PROP_ID
Tipo di dati di
Viene impostato 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 e inizializzato da CERT_KEY_PROV_INFO_PROP_ID. Se CERT_STORE_NO_CRYPT_RELEASE_FLAG non è impostato, il valore
CERT_KEY_PROV_INFO_PROP_ID
Tipo di dati di pvData: puntatore a una struttura di CRYPT_KEY_PROV_INFO.
La struttura specifica la chiave privata del certificato.
CERT_KEY_SPEC_PROP_ID
Tipo di dati di
Valore DWORD
CERT_MD5_HASH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura di CRYPT_HASH_BLOB.
Questa proprietà viene impostata in modo implicito da una chiamata alla funzione CertGetCertificateContextProperty.
CERT_NCRYPT_KEY_HANDLE_PROP_ID
Tipo di dati di pvData: puntatore a un tipo di dati NCRYPT_KEY_HANDLE.
Questa proprietà imposta il
CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID
Imposta l'handle della chiave CNG associata al certificato.
CERT_NEW_KEY_PROP_ID
Questo identificatore è riservato.
CERT_NEXT_UPDATE_LOCATION_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
La struttura CRYPT_DATA_BLOB contiene una struttura con codifica ASN.1 CERT_ALT_NAME_INFO codificata usando la funzione CryptEncodeObject con il valore X509_ALTERNATE_NAME impostato.
CERT_NEXT_UPDATE_LOCATION_PROP_ID è attualmente usato solo con elenchi di scopi consentiti.
CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID
Questo identificatore è riservato.
CERT_OCSP_CACHE_PREFIX_PROP_ID
Questo identificatore è riservato.
CERT_OCSP_RESPONSE_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà imposta la risposta del protocollo di stato del certificato online (OCSP) codificata
CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura di CRYPT_DATA_BLOB.
Questa proprietà viene impostata in modo implicito chiamando la funzione
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo identificatore non è supportato.
CERT_PUBKEY_ALG_PARA_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà viene usata con chiavi pubbliche che supportano l'ereditarietà dei parametri dell'algoritmo. Il BLOB di dati contiene i parametri dell'algoritmo PublicKey con codifica ASN.1. Per DSS, questi sono parametri codificati usando la funzione CryptEncodeObject
CERT_PUBKEY_HASH_RESERVED_PROP_ID
Questo identificatore è riservato.
CERT_PVK_FILE_PROP_ID
Tipo di dati di pvData: puntatore a una struttura 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
CERT_RENEWAL_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà specifica l'hash del certificato rinnovato.
CERT_REQUEST_ORIGINATOR_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
La struttura CRYPT_DATA_BLOB contiene una stringa Unicode con terminazione Null contenente il nome computer DNS per l'origine della richiesta di contesto del certificato.
CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Restituisce un puntatore a una struttura di CERT_POLICIES_INFO codificata che contiene i criteri dell'applicazione del certificato radice per il contesto. Questa proprietà può essere decodificata usando la funzione
CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID
Questo identificatore è riservato.
CERT_SIGN_HASH_CNG_ALG_PROP_ID
Tipo di dati di pvData: puntatore a una struttura di CRYPT_DATA_BLOB.
Questa proprietà viene impostata in modo implicito chiamando la funzione
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo identificatore non è supportato.
CERT_SHA1_HASH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura di CRYPT_HASH_BLOB.
Questa proprietà viene impostata in modo implicito da una chiamata alla funzione CertGetCertificateContextProperty.
CERT_SIGNATURE_HASH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura di CRYPT_HASH_BLOB.
Se non esiste un hash della firma, viene calcolato usando la funzione CryptHashToBeSigned. pvData punta a un hash esistente o calcolato. In genere, la lunghezza dell'hash è di 20 byte per SHA e 16 per MD5.
CERT_SMART_CARD_DATA_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà imposta la proprietà dei dati della smart card di un contesto di certificato smart card.
CERT_SMART_CARD_ROOT_INFO_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà imposta la proprietà information di un contesto di certificato radice della smart card.
CERT_SOURCE_LOCATION_PROP_ID
Questo identificatore è riservato.
CERT_SOURCE_URL_PROP_ID
Questo identificatore è riservato.
CERT_SUBJECT_DISABLE_CRL_PROP_ID
Questo identificatore è riservato.
CERT_SUBJECT_INFO_ACCESS_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà imposta l'estensione di accesso alle informazioni sull'oggetto del contesto del certificato come struttura CERT_SUBJECT_INFO_ACCESS codificata.
CERT_SUBJECT_NAME_MD5_HASH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Restituisce un hash MD5 del nome soggetto codificato del contesto del certificato.
CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID
Questo identificatore è riservato.
CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura di CRYPT_DATA_BLOB.
Questa proprietà viene impostata in modo implicito chiamando la funzione
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo identificatore non è supportato.
CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID
Tipo di dati di pvData: puntatore a una struttura CRYPT_DATA_BLOB.
Questa proprietà imposta l'hash MD5 della chiave pubblica del certificato.
pvData è un puntatore a una struttura di CRYPT_DATA_BLOB.
L'utente può definire altri tipi di dwPropId usando valori di DWORD da CERT_FIRST_USER_PROP_ID a CERT_LAST_USER_PROP_ID. Per tutti i tipi di 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à di CERT_KEY_PROV_HANDLE_PROP_ID o CERT_KEY_CONTEXT_PROP_ID dwPropId.
Se il valore CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG è impostato, eventuali 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à di contesto non viene salvato in modo permanente.
[in] pvData
Puntatore a un tipo di dati determinato dal valore di dwPropId.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce TRUE.
Se la funzione ha esito negativo, la funzione restituisce FALSE. Per informazioni sugli errori estesi, chiamare GetLastError. Un possibile codice di errore è il seguente.
Codice restituito | Descrizione |
---|---|
|
La proprietà non è valida. L'identificatore specificato è maggiore di 0x0000FFFF oppure, per la proprietà CERT_KEY_CONTEXT_PROP_ID, un membro cbSize |
Osservazioni
Se esiste già una proprietà, il valore precedente viene sostituito.
Il codice può usare una macro per valutare la classe di hash per un contesto di certificato. L'intestazione Wincrypt.h definisce le macro seguenti a questo scopo. Queste macro vengono usate internamente dalla funzione CertSetCertificateContextProperty.
IS_CERT_HASH_PROP_ID(X)IS_PUBKEY_HASH_PROP_ID(X)IS_CHAIN_HASH_PROP_ID(X) Ogni macro accetta il valore di dwPropId (X) come input e restituisce un valore booleano. Nella tabella seguente vengono illustrati i valori di dwPropId
Macro | Restituisce TRUE se dwPropId |
---|---|
IS_CERT_HASH_PROP_ID(dwPropId) |
|
IS_PUBKEY_HASH_PROP_ID(dwPropId) |
|
IS_CHAIN_HASH_PROP_ID(dwPropId) |
|
La macro IS_STRONG_SIGN_PROP_ID(x) restituisce TRUE se le proprietà CERT_SIGN_HASH_CNG_ALG_PROP_ID, CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_IDo CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID vengono impostate nel parametro dwPropId.
Esempi
Per un esempio che usa questa funzione, vedere Programma C di esempio: Recupero e impostazione delle proprietà del certificato.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [app desktop | App UWP] |
server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
wincrypt.h |
libreria |
Crypt32.lib |
dll | Crypt32.dll |