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

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

Эта функция преобразует PUBLICKEYSTRUC CSP в структуру X.509CERT_PUBLIC_KEY_INFO и кодирует ее. Затем кодированная структура хэширована алгоритмом 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 [только классические приложения]
целевая платформа Виндоус
заголовка wincrypt.h
библиотеки Crypt32.lib
DLL Crypt32.dll

См. также

CryptEnumKeyIdentifierProperties

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty

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