Функция CryptCreateKeyIdentifierFromCSP (wincrypt.h)
Эта функция преобразует 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
Функции идентификаторов ключей