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

Функция CertCreateCTLEntryFromCertificateContextProperties создает запись списка доверия сертификатов (CTL), атрибуты которого являются свойствами контекста сертификата. SubjectIdentifier в записи CTL является хэшом SHA1 сертификата.

Свойства сертификата добавляются в виде атрибутов. Атрибут свойства OID является десятичным PROP_ID перед szOID_CERT_PROP_ID_PREFIX. Каждое значение свойства копируется в виде одного значения атрибута.

Дополнительные атрибуты можно включить в запись CTL с помощью параметров cOptAttr и rgOptAttr .

Синтаксис

BOOL CertCreateCTLEntryFromCertificateContextProperties(
  [in]      PCCERT_CONTEXT   pCertContext,
  [in]      DWORD            cOptAttr,
  [in]      PCRYPT_ATTRIBUTE rgOptAttr,
  [in]      DWORD            dwFlags,
  [in]      void             *pvReserved,
  [out]     PCTL_ENTRY       pCtlEntry,
  [in, out] DWORD            *pcbCtlEntry
);

Параметры

[in] pCertContext

Указатель на CERT_CONTEXT , используемый для создания CTL.

[in] cOptAttr

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

[in] rgOptAttr

Указатель на любой массив CRYPT_ATTRIBUTE атрибутов, добавляемых в список CTL.

[in] dwFlags

DWORD. Можно задать значение CTL_ENTRY_FROM_PROP_CHAIN_FLAG для принудительного включения хэш-свойств сборки цепочки в качестве атрибутов.

[in] pvReserved

Указатель на VOID. Зарезервировано для последующего использования.

[out] pCtlEntry

Адрес указателя на структуру CTL_ENTRY . Дважды вызовите эту функцию, чтобы получить запись CTL. При первом вызове задайте для этого параметра значение NULL . При возврате функции используйте количество байтов, полученных из параметра pcbCtlEntry , чтобы выделить память. Вызовите функцию еще раз, задав для этого параметра адрес выделенной памяти.

[in, out] pcbCtlEntry

Указатель на DWORD , содержащий количество байтов, которые должны быть выделены для структуры CTL_ENTRY . Дважды вызовите эту функцию, чтобы получить количество байтов. Для первого вызова задайте для этого параметра адрес значения DWORD , содержащего ноль, и задайте для параметра pCtlEntryзначение NULL. Если первый вызов выполнен успешно, значение DWORD будет содержать количество байтов, которые необходимо выделить для структуры CTL_ENTRY . Выделите необходимую память и снова вызовите функцию , указав адрес памяти в параметре pCtlEntry .

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

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

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

Требования

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