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