Funzione CertSetStoreProperty (wincrypt.h)
La funzione CertSetStoreProperty imposta una proprietà dell'archivio.
Sintassi
BOOL CertSetStoreProperty(
[in] HCERTSTORE hCertStore,
[in] DWORD dwPropId,
[in] DWORD dwFlags,
[in] const void *pvData
);
Parametri
[in] hCertStore
Handle per l'archivio certificati.
[in] dwPropId
Indica un intervallo di proprietà dell'archivio. I valori per le proprietà definite dall'utente devono essere esterni all'intervallo corrente di valori di proprietà di contesto predefiniti. Attualmente, i valori dwPropId definiti dall'utente iniziano a 4.096. Esiste una proprietà dell'archivio predefinita, CERT_STORE_LOCALIZED_NAME_PROP_ID, il nome localizzato dell'archivio.
[in] dwFlags
Riservato per l'uso futuro e deve essere zero.
[in] pvData
La definizione del tipo per pvData dipende dal valore dwPropId . Se dwPropId è CERT_STORE_LOCALIZED_NAME_PROP_ID, pvData punta a una struttura CRYPT_DATA_BLOB . Il membro pbData di tale struttura è un puntatore a una stringa di caratteri Unicode con terminazione null. Il membro cbData di tale struttura è un valore DWORD che contiene la lunghezza della stringa.
Per i valori dwPropId definiti dall'utente, pvData è un puntatore a un CRYPT_DATA_BLOB codificato.
Se esiste già un valore per la proprietà selezionata, il valore precedente viene sostituito.
La chiamata a questa funzione con pvData impostata su NULL elimina una proprietà.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è TRUE.
Se la funzione ha esito negativo, il valore restituito è FALSE.
Commenti
Gli identificatori delle proprietà dell'archivio sono proprietà applicabili a un intero archivio. Non sono proprietà per un singolo certificato, CRL o contesto CTL . Attualmente, non vengono mantenute le proprietà dell'archivio.
Esempio
Nell'esempio seguente viene illustrata l'impostazione della proprietà nome localizzato di un archivio certificati aperto.
//--------------------------------------------------------------
// Declare and initialize variables.
HCERTSTORE hCertStore = NULL; // Original certificate store
CRYPT_DATA_BLOB Property_Name_Blob; // BLOB to hold store property
//--------------------------------------------------------------
// Open the certificate store that will have its localized name
// property set. In this case, the CA system store is opened.
if ( hCertStore = CertOpenStore(
CERT_STORE_PROV_SYSTEM,
0,
NULL,
CERT_SYSTEM_STORE_CURRENT_USER,
L"CA"))
{
printf("The CA store is open.\n");
}
else
{
printf("The CA store could not be opened \n.");
exit(1);
}
//--------------------------------------------------------------------
// Prepare a data structure to set a store property.
// Initialize the members of the CRYPT_DATA_BLOB.
Property_Name_Blob.pbData = (BYTE *) L"The Local CA Store";
Property_Name_Blob.cbData =
(wcslen((LPWSTR)Property_Name_Blob.pbData)+1) * sizeof(WCHAR);
//--------------------------------------------------------------------
// Set the store's localized name property.
if (CertSetStoreProperty(
hCertStore,
CERT_STORE_LOCALIZED_NAME_PROP_ID,
0,
&Property_Name_Blob))
{
printf("The name of the store has been set. Continue. \n");
}
else
{
printf("Setting the store's localized name failed.\n");
exit(1);
}
// Close the store when done.
if (!CertCloseStore(
hCertStore,
0 ))
{
printf("The CA store could not be closed \n.");
exit(1);
}
Per un altro esempio che usa questa funzione, vedere Esempio di programma C: impostazione e recupero delle proprietà dell'archivio certificati.
Requisiti
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 |