Функция 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 .
Значение | Значение |
---|---|
|
Тип данных для pvData: указатель на DWORD
Возвращает значение DWORD , указывающее, сохраняются ли операции записи в сертификат. Значение DWORD не задано, если сертификат находится в хранилище памяти или в хранилище на основе реестра, которое открыто только для чтения. |
|
Тип данных для pvData: NULL
Указывает, что сертификат пропускается во время перечисления. Сертификат с этим набором свойств обнаруживается с помощью явных операций поиска, таких как те, которые используются для поиска сертификата с определенным хэшом или серийным номером. Данные в pvData не связаны с этим свойством. |
|
Тип данных для pvData: указатель на массив BYTE Возвращает строку Юникода, завершающуюся значением NULL, именующую тип сертификата, для которого сертификат был зарегистрирован автоматически. |
|
Тип данных для pvData: указатель на массив BYTE Возвращает массив байтов, содержащий абстрактную синтаксическую нотацию 1 (ASN.1) CTL_USAGE структуру. |
|
Тип данных для pvData: указатель на массив BYTE Возвращает свойство, отображаемое в пользовательском интерфейсе сертификата. Это свойство позволяет пользователю описать использование сертификата. |
|
Тип данных для pvData: указатель на массив BYTE Возвращает массив байтов, содержащий структуру CERT_ENHKEY_USAGE в кодировке ASN.1. |
|
Тип данных для pvData: указатель на массив BYTE Возвращает строку символов Юникода, завершающуюся null, которая содержит отображаемое имя для CTL. |
|
Тип данных для pvData: указатель на массив BYTE Возвращает хэш SHA1. Если хэш не существует, он вычисляется с помощью CryptHashCertificate. |
|
Тип данных для pvData: указатель на CERT_KEY_CONTEXT
Возвращает структуру CERT_KEY_CONTEXT . |
|
Тип данных для pvData: указатель на массив BYTE Если оно отсутствует, выполните поиск расширения szOID_SUBJECT_KEY_IDENTIFIER. Если это не удается, хэш SHA1 выполняется для элемента SubjectPublicKeyInfo сертификата для получения значений идентификатора. |
|
Тип данных для pvData: указатель на HCRYPTPROV
Возвращает дескриптор поставщика, полученный из CERT_KEY_CONTEXT_PROP_ID. |
|
Тип данных для pvData: указатель на структуру CRYPT_KEY_PROV_INFO Возвращает указатель на CRYPT_KEY_PROV_INFO. |
|
Тип данных для pvData: указатель на DWORD
Возвращает значение DWORD , указывающее закрытый ключ, полученный из свойства CERT_KEY_CONTEXT_PROP_ID, если он существует. В противном случае, если CERT_KEY_PROV_INFO_PROP_ID существует, он является источником dwKeySpec. |
|
Тип данных для pvData: указатель на массив BYTE Возвращает хэш MD5. Если хэш не существует, он вычисляется с помощью CryptHashCertificate. |
|
Тип данных для pvData: указатель на массив BYTE Возвращает структуру CERT_ALT_NAME_INFO в кодировке ASN.1. CERT_NEXT_UPDATE_LOCATION_PROP_ID в настоящее время используется только с CCL. |
|
Тип данных для pvData: указатель на массив BYTE Возвращает строку расширенных символов в Юникоде, завершающуюся null, и задает имя файла, содержащего закрытый ключ, связанный с открытым ключом сертификата. |
|
Тип данных для pvData: указатель на массив BYTE Возвращает хэш SHA1. Если хэш не существует, он вычисляется с помощью CryptHashCertificate. |
|
Тип данных для 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.
Ниже приведены некоторые возможные коды ошибок.
Код возврата | Описание |
---|---|
|
CTL не имеет указанного свойства. |
|
Если буфер, заданный параметром pvData , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает pcbData. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |