Функция CertSetStoreProperty (wincrypt.h)
Функция CertSetStoreProperty задает свойство store.
Синтаксис
BOOL CertSetStoreProperty(
[in] HCERTSTORE hCertStore,
[in] DWORD dwPropId,
[in] DWORD dwFlags,
[in] const void *pvData
);
Параметры
[in] hCertStore
Дескриптор хранилища сертификатов.
[in] dwPropId
Указывает одно из диапазонов свойств хранилища. Значения для определяемых пользователем свойств должны находиться за пределами текущего диапазона предопределенных значений свойств контекста. В настоящее время определяемые пользователем значения dwPropId начинаются с 4096. Существует одно предопределенное свойство хранилища, CERT_STORE_LOCALIZED_NAME_PROP_ID, локализованное имя хранилища.
[in] dwFlags
Зарезервировано для будущего использования и должно быть равно нулю.
[in] pvData
Определение типа для pvData зависит от значения dwPropId . Если параметр dwPropId CERT_STORE_LOCALIZED_NAME_PROP_ID, pvData указывает на структуру CRYPT_DATA_BLOB . Элемент pbData этой структуры является указателем на строку символов Юникода, завершающуюся null. Элемент cbData этой структуры является значением DWORD , которое содержит длину строки.
Для определяемых пользователем значений dwPropIdpvData является указателем на закодированный CRYPT_DATA_BLOB.
Если для выбранного свойства уже существует значение, старое значение заменяется.
Вызов этой функции с параметром pvData , имеющим значение NULL , удаляет свойство .
Возвращаемое значение
Если функция выполняется успешно, возвращается значение TRUE.
Если функция завершается сбоем, возвращается значение FALSE.
Комментарии
Идентификаторы свойств хранилища — это свойства, применимые ко всему хранилищу. Они не являются свойствами для отдельного сертификата, списка отзыва сертификатов или контекста CTL . В настоящее время свойства хранилища не сохраняются.
Примеры
В следующем примере показано задание локализованного свойства имени открытого хранилища сертификатов.
//--------------------------------------------------------------
// 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);
}
Еще один пример использования этой функции см. в разделе Пример программы C: настройка и получение свойств хранилища сертификатов.
Требования
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |