Функция 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

См. также раздел

CertGetStoreProperty

Функции хранилища сертификатов