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

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

Эта функция преобразует PUBLICKEYSTRUC CSP в структуру CERT_PUBLIC_KEY_INFOX.509 и кодирует ее. Затем закодированная структура хэшируется с помощью алгоритма SHA1 для получения идентификатора ключа.

Синтаксис

BOOL CryptCreateKeyIdentifierFromCSP(
  [in]      DWORD                dwCertEncodingType,
  [in]      LPCSTR               pszPubKeyOID,
  [in]      const PUBLICKEYSTRUC *pPubKeyStruc,
  [in]      DWORD                cbPubKeyStruc,
  [in]      DWORD                dwFlags,
  [in]      void                 *pvReserved,
  [out]     BYTE                 *pbHash,
  [in, out] DWORD                *pcbHash
);

Параметры

[in] dwCertEncodingType

Указывает используемый тип кодирования. Всегда допустимо указывать типы кодирования сертификатов и сообщений, объединяя их с побитовой операцией ИЛИ , как показано в следующем примере:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

В настоящее время определены следующие типы кодирования:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pszPubKeyOID

Указатель на идентификатор объекта открытого ключа (OID). Значение, не равное NULL , переопределяет OID по умолчанию, полученный из элемента aiKeyAlg структуры, на которую указывает pPubKeyStruc. Чтобы использовать OID по умолчанию, задайте для параметра pszPubKeyOIDзначение NULL.

[in] pPubKeyStruc

Указатель на структуру PUBLICKEYSTRUC . В случае по умолчанию элемент aiKeyAlg структуры, на который указывает pPubKeyStruc , используется для поиска идентификатора открытого ключа. Если значение pszPubKeyOID не равно NULL, оно переопределяет значение по умолчанию.

[in] cbPubKeyStruc

Размер publicKEYSTRUC (в байтах).

[in] dwFlags

Зарезервировано для будущего использования и должно быть равно нулю.

[in] pvReserved

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

[out] pbHash

Указатель на буфер для получения хэша открытого ключа и идентификатора ключа.

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

[in, out] pcbHash

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

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

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

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

Требования

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

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

CryptEnumKeyIdentifierProperties

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty

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