Поделиться через


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

Важно Этот API является устаревшим. Новое и существующее программное обеспечение должно начать использовать API-интерфейсы шифрования следующего поколения. Корпорация Майкрософт может удалить этот API в будущих выпусках.
 
CryptGetKeyIdentifierProperty получает определенное свойство из указанного идентификатора ключа.

Синтаксис

BOOL CryptGetKeyIdentifierProperty(
  [in]      const CRYPT_HASH_BLOB *pKeyIdentifier,
  [in]      DWORD                 dwPropId,
  [in]      DWORD                 dwFlags,
  [in]      LPCWSTR               pwszComputerName,
  [in]      void                  *pvReserved,
  [out]     void                  *pvData,
  [in, out] DWORD                 *pcbData
);

Параметры

[in] pKeyIdentifier

Указатель на CRYPT_HASH_BLOB , содержащий идентификатор ключа.

[in] dwPropId

Определяет извлекаемое свойство. Значение dwPropId определяет тип и содержимое параметра pvData . Можно использовать любой идентификатор свойства сертификата.

[in] dwFlags

Можно использовать следующие флаги. Их можно сочетать с побитовой операцией ИЛИ .

Значение Значение
CRYPT_KEYID_MACHINE_FLAG
Выполните поиск по списку идентификаторов ключей localMachine (если pwszComputerName имеет значение NULL) или удаленного компьютера (если pwszComputerName не равно NULL). Дополнительные сведения см. в разделе pwszComputerName.
CRYPT_KEYID_ALLOC_FLAG
Функция LocalAlloc() вызывается для выделения памяти для pvData. *PvData обновляется с помощью указателя на выделенную память. Для освобождения выделенной памяти необходимо вызвать Метод LocalFree().

[in] pwszComputerName

Указатель на имя удаленного компьютера для поиска. Если CRYPT_KEYID_MACHINE_FLAG флаг установлен, выполняет поиск на удаленном компьютере списка идентификаторов ключей. Если поиск выполняется на локальном компьютере, а не на удаленном компьютере, задайте для pwszComputerName значение NULL.

[in] pvReserved

Зарезервировано для использования в будущем и должно иметь значение NULL.

[out] pvData

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

Если параметр dwPropId CERT_KEY_PROV_INFO_PROP_ID, pvData указывает на структуру CRYPT_KEY_PROV_INFO, содержащую свойство идентификатора ключа.

Если параметр dwPropId не CERT_KEY_PROV_INFO_PROP_ID, pvData указывает на массив байтов, содержащий свойство идентификатора ключа.

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

Если задано CRYPT_KEYID_ALLOC_FLAG, pvData — это адрес указателя на обновляемый буфер. Так как выделена память, а ее указатель хранится в *pvData, параметр pvData не должен иметь значение NULL.

[in, out] pcbData

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

Если задан CRYPT_KEYID_ALLOC_FLAG, pcbData — это адрес указателя на обновляемый параметр DWORD .

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

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

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

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

Требования

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

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

CryptEnumKeyIdentifierProperties

CryptSetKeyIdentifierProperty

Функции идентификаторов ключей