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

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

Синтаксис

BOOL CertGetCTLContextProperty(
  [in]      PCCTL_CONTEXT pCtlContext,
  [in]      DWORD         dwPropId,
  [out]     void          *pvData,
  [in, out] DWORD         *pcbData
);

Параметры

[in] pCtlContext

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

[in] dwPropId

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

Значение Значение
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: указатель на массив BYTE

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

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

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

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

Возвращает хэш SHA1. Если хэш не существует, он вычисляется с помощью CryptHashCertificate.

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

Возвращает структуру CERT_KEY_CONTEXT .

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

Если оно отсутствует, выполните поиск расширения szOID_SUBJECT_KEY_IDENTIFIER. Если это не удается, хэш SHA1 выполняется для элемента SubjectPublicKeyInfo сертификата для получения значений идентификатора.

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

Возвращает структуру CERT_ALT_NAME_INFO в кодировке ASN.1.

CERT_NEXT_UPDATE_LOCATION_PROP_ID в настоящее время используется только с CCL.

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

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

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

Возвращает хэш SHA1. Если хэш не существует, он вычисляется с помощью CryptHashCertificate.

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

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

 

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

Дополнительные сведения о каждом идентификаторе свойства см. в документации по параметру dwPropId в CertSetCertificateContextProperty. CERT_SHA1_HASH_PROP_ID и CERT_NEXT_UPDATE_LOCATION_PROP_ID являются предопределенными свойствами, которые представляют наибольший интерес.

[out] pvData

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

Этот параметр может иметь значение NULL , чтобы задать размер сведений для целей выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.

[in, out] pcbData

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

Примечание При обработке данных, возвращаемых в буфере, приложения должны использовать фактический размер возвращаемых данных. Фактический размер может быть немного меньше размера буфера, указанного на входных данных. (На входных данных размеры буфера обычно указываются достаточно большими, чтобы убедиться, что в буфере помещаются самые большие выходные данные.) В выходных данных переменная, на которую указывает этот параметр, обновляется с учетом фактического размера данных, скопированных в буфер.
 

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

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

Если функция завершается сбоем, возвращается значение FALSE.

Ошибки из вызванной функции , CryptHashCertificate, могут быть распространены на эту функцию. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.

Ниже приведены некоторые возможные коды ошибок.

Код возврата Описание
CRYPT_E_NOT_FOUND
CTL не имеет указанного свойства.
ERROR_MORE_DATA
Если буфер, заданный параметром pvData , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает pcbData.

Требования

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

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

CertEnumCTLContextProperties

CertGetCertificateContextProperty

CertSetCTLContextProperty

CryptHashCertificate

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