Функция CertSetCRLContextProperty (wincrypt.h)

Функция CertSetCRLContextProperty задает расширенное свойство для указанного контекста списка отзыва сертификатов (CRL).

Синтаксис

BOOL CertSetCRLContextProperty(
  [in] PCCRL_CONTEXT pCrlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

Параметры

[in] pCrlContext

Указатель на структуру CRL_CONTEXT .

[in] dwPropId

Определяет свойство, которое необходимо задать. Значение dwPropId определяет тип и содержимое параметра pvData . В следующей таблице перечислены текущие идентификаторы и тип данных, возвращаемых в pvData .

Обычно задаются только следующие свойства:

  • CERT_HASH_PROP_ID
  • CERT_SHA1_HASH_PROP_ID
  • CERT_MD5_HASH_PROP_ID
  • CERT_SIGNATURE_HASH_PROP_ID
Значение Значение
CERT_ACCESS_STATE_PROP_ID
Тип данных для pvData: указатель на DWORD

Задает значение DWORD , указывающее, сохраняются ли операции записи в сертификат. Значение DWORD не задано, если сертификат находится в хранилище памяти или в хранилище на основе реестра, которое открыто только для чтения.

CERT_ARCHIVED_PROP_ID
Тип данных для pvData: NULL

Указывает, что сертификат пропускается во время перечисления. Сертификат с этим набором свойств обнаруживается с помощью явных операций поиска, таких как те, которые используются для поиска сертификата с определенным хэшом или серийным номером. Данные в pvData не связаны с этим свойством.

CERT_AUTO_ENROLL_PROP_ID
Тип данных для pvData: указатель на массив BYTE

Задает строку Юникода с символом null, именующую тип сертификата, для которого сертификат был зарегистрирован автоматически.

CERT_CTL_USAGE_PROP_ID
Тип данных для pvData: указатель на массив BYTE

Задает массив байтов, содержащий абстрактную синтаксическую нотацию 1 (ASN.1) CTL_USAGE структуру.

CERT_DESCRIPTION_PROP_ID
Тип данных для pvData: указатель на массив BYTE

Задает свойство, отображаемое в пользовательском интерфейсе сертификата. Это свойство позволяет пользователю описать использование сертификата.

CERT_ENHKEY_USAGE_PROP_ID
Тип данных для pvData:

Задает массив байтов, содержащий структуру в кодировке ASN.1 CERT_ENHKEY_USAGE .

CERT_FRIENDLY_NAME_PROP_ID
Тип данных для pvData: указатель на массив BYTE

Задает строку символов Юникода, завершающуюся null, которая содержит отображаемое имя списка отзыва сертификатов.

CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Тип данных для pvData: указатель на структуру CRYPT_DATA_BLOB .

Задает строку, содержащую набор алгоритмов открытого ключа И битовой длины L"<PUBKEY>/<BITLENGTH>". В качестве разделителя используется точка с запятой L";".

Значение <PUBKEY> определяет алгоритм открытого ключа CNG. Поддерживаются следующие алгоритмы:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Пара <PUBKEY>/<BITLENGTH> устанавливается для каждого сертификата в цепочке издателей списка отзыва сертификатов, за исключением конечной части. Это свойство можно задать, когда ответ OCSP с независимой цепочкой подписывателя преобразуется в список отзыва сертификатов.
Примечание Это свойство не следует задавать для делегированного сертификата подписывателя OCSP. Делегированный сертификат подписывателя подписывается тем же ключом, который используется для подписывания сертификата субъекта, и проверяется там.
 
Ниже представлен пример такого кода:

: L"RSA/2048; RSA/4096"

CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID
Тип данных для pvData: указатель на структуру CRYPT_DATA_BLOB .

Задает строку, содержащую набор пар алгоритмов L"<SIGNATURE>/<HASH>". Точка с запятой L";" используется в качестве разделителя между парами.

Это свойство задается только в том случае, если ответ OCSP преобразуется в список отзыва сертификатов. Для делегированного сертификата подписателя OCSP возвращается только пара алгоритмов для сертификата подписывателя. Для независимой цепочки сертификатов подписывающих OCSP для каждого сертификата в цепочке за исключением корневого сертификата возвращается пара алгоритмов.

Значение <SIGNATURE> определяет алгоритм открытого ключа CNG. Поддерживаются следующие алгоритмы:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Значение <HASH> определяет алгоритм хэширования CNG. Поддерживаются следующие алгоритмы:
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
Ниже представлен пример такого кода:
  • L"RSA/SHA256; RSA/SHA256"
Это свойство явно задается функциями проверки отзыва.
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Тип данных для pvData: указатель на структуру CRYPT_DATA_BLOB .

Задает в битах длину открытого ключа в сертификате издателя списка отзыва сертификатов. Это свойство также применимо к OCSP, который был преобразован в список отзыва сертификатов.

Это свойство явно задается функциями проверки отзыва.

Windows 8 и Windows Server 2012: начинается поддержка этого свойства.

CERT_KEY_CONTEXT_PROP_ID
Тип данных для pvData: указатель на CERT_KEY_CONTEXT

Задает структуру CERT_KEY_CONTEXT .

CERT_KEY_IDENTIFIER_PROP_ID
Тип данных для pvData: указатель на массив BYTE
CERT_KEY_PROV_HANDLE_PROP_ID
Тип данных для pvData: указатель на HCRYPTPROV

Задает дескриптор поставщика, полученный из CERT_KEY_CONTEXT_PROP_ID.

CERT_KEY_PROV_INFO_PROP_ID
Тип данных для pvData: указатель на CRYPT_KEY_PROV_INFO

Задает указатель на структуру CRYPT_KEY_PROV_INFO .

CERT_KEY_SPEC_PROP_ID
Тип данных для pvData: указатель на DWORD

Задает значение DWORD , указывающее закрытый ключ, полученный из свойства CERT_KEY_CONTEXT_PROP_ID, если он существует. В противном случае, если CERT_KEY_PROV_INFO_PROP_ID существует, он является источником dwKeySpec.

CERT_MD5_HASH_PROP_ID
Тип данных для pvData: указатель на массив BYTE .

Задает хэш MD5. Хэш можно вычислить с помощью функции CryptHashCertificate .

CERT_NEXT_UPDATE_LOCATION_PROP_ID
Тип данных для pvData: указатель на массив BYTE .

Задает структуру в кодировке ASN.1 CERT_ALT_NAME_INFO в CTL.

CERT_PVK_FILE_PROP_ID
Тип данных для pvData: указатель на массив BYTE .

Задает строку с широкими символами в Юникоде со значением NULL, указывающую имя файла, содержащего закрытый ключ, связанный с открытым ключом сертификата.

CERT_SHA1_HASH_PROP_ID
Тип данных для pvData: указатель на массив BYTE .

Задает хэш SHA1. Хэш можно вычислить с помощью CryptHashCertificate.

CERT_SIGN_HASH_CNG_ALG_PROP_ID
Тип данных pvData: указатель на структуру CRYPT_DATA_BLOB .

Задает строку L"<SIGNATURE>/<HASH>", представляющую подпись сертификата. Значение <SIGNATURE> определяет алгоритм открытого ключа CNG. Поддерживаются следующие алгоритмы:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Значение <HASH> определяет хэш-алгоритм CNG. Поддерживаются следующие алгоритмы:
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
Ниже приведено несколько типичных примеров.
  • L"RSA/SHA1"
  • L"RSA/SHA256"
  • L"ECDSA/SHA256"
Это свойство также применимо к ответу OCSP, который был преобразован в список отзыва сертификатов.

Это свойство явно задается функциями проверки отзыва.

Windows 8 и Windows Server 2012: начинается поддержка этого свойства.

CERT_SIGNATURE_HASH_PROP_ID
Тип данных для pvData: указатель на массив BYTE .

Задает хэш подписи. Если хэш не существует, он вычисляется с помощью CryptHashToBeSigned. Длина хэша составляет 20 байт для SHA и 16 для MD5.

 

Пользователь может определить дополнительные типы dwPropId , используя значения DWORD из CERT_FIRST_USER_PROP_ID в CERT_LAST_USER_PROP_ID. Для всех определяемых пользователем типов dwPropIdpvData указывает на закодированный CRYPT_DATA_BLOB.

Для всех остальных идентификаторов свойств pvData указывает на закодированную структуру CRYPT_DATA_BLOB .

[in] dwFlags

CERT_STORE_NO_CRYPT_RELEASE_FLAG можно задать для свойств dwPropId CERT_KEY_PROV_HANDLE_PROP_ID или CERT_KEY_CONTEXT_PROP_ID.

Если задано значение CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG, все ошибки записи поставщика игнорируются, а свойства кэшированного контекста всегда задаются.

Если задано CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG, все наборы свойств не сохраняются.

[in] pvData

Указатель на тип данных, который определяется значением, переданным в dwPropId.

Примечание Для любого dwPropId при установке параметра pvData значения NULL свойство удаляется.
 

Возвращаемое значение

Если функция выполняется успешно, возвращается значение TRUE.

Если функция завершается сбоем, возвращается значение FALSE. Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError. Ниже приведен один из возможных кодов ошибки.

Код возврата Описание
E_INVALIDARG
Недопустимое свойство. Указанный идентификатор был больше 0x0000FFFF или для свойства CERT_KEY_CONTEXT_PROP_ID в структуре CERT_KEY_CONTEXT указан недопустимый член cbSize.

Комментарии

Если свойство уже существует, его старое значение заменяется.

Примеры

Пример использования этой функции см. в разделе Пример программы C: получение и настройка свойств сертификата.

Требования

Требование Значение
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header wincrypt.h
Библиотека Crypt32.lib
DLL Crypt32.dll

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

CERT_ALT_NAME_INFO

CERT_CONTEXT

CERT_ENHKEY_USAGE

CERT_KEY_CONTEXT

CRL_CONTEXT

CRYPT_DATA_BLOB

CRYPT_HASH_BLOB

CRYPT_KEY_PROV_INFO

CTL_USAGE

CertGetCRLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

CryptHashToBeSigned

Расширенные функции свойств