Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Синтаксис
BOOL CryptImportPublicKeyInfo(
[in] HCRYPTPROV hCryptProv,
[in] DWORD dwCertEncodingType,
[in] PCERT_PUBLIC_KEY_INFO pInfo,
[out] HCRYPTKEY *phKey
);
Параметры
[in] hCryptProv
Дескриптор поставщика служб шифрования (CSP), используемый при импорте открытого ключа. Этот дескриптор уже должен быть создан с помощью CryptAcquireContext.
[in] dwCertEncodingType
Указывает используемый тип кодирования. Всегда допустимо указывать типы кодирования сертификатов и сообщений, объединяя их с побитовой операцией ИЛИ , как показано в следующем примере:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
В настоящее время определены следующие типы кодирования:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pInfo
Адрес структуры CERT_PUBLIC_KEY_INFO , содержащей открытый ключ для импорта в поставщик.
[out] phKey
Адрес переменной HCRYPTKEY , которая получает дескриптор импортированного открытого ключа. Завершив использование открытого ключа, отпустите дескриптор, вызвав функцию CryptDeographyKey .
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение не равно нулю (TRUE).
Если функция завершается ошибкой, возвращаемое значение равно нулю (FALSE). Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.
| Код возврата | Описание |
|---|---|
|
Не удалось найти функцию импорта, которую можно установить или зарегистрировать для указанных параметров dwCertEncodingType и pInfo-Algorithm.pszObjId>. |
Если функция завершается сбоем, GetLastError может вернуть ошибку кодирования и декодирования абстрактной синтаксической нотации 1 (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.
Комментарии
Эта функция обычно используется для получения открытого ключа из сертификата. Это делается путем передачи структуры CERT_PUBLIC_KEY_INFO из заполненной структуры сертификата, как показано в следующем псевдокоде.
PCCERT_CONTEXT pCertContext
// Get the certificate context structure from a certificate.
pCertContext = CertCreateCertificateContext(...)
if(pCertContext)
{
HCRYPTKEY hCertPubKey
// Get the public key information for the certificate.
CryptImportPublicKeyInfo(
hCryptProv,
X509_ASN_ENCODING,
&pCertContext->pCertInfo->SubjectPublicKeyInfo,
&hCertPubKey)
CertFreeCertificateContext(pCertContext)
}
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows XP [только классические приложения] |
| Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
| Целевая платформа | Windows |
| Header | wincrypt.h |
| Библиотека | Crypt32.lib |
| DLL | Crypt32.dll |