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

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

Синтаксис

BOOL CryptGetUserKey(
  [in]  HCRYPTPROV hProv,
  [in]  DWORD      dwKeySpec,
  [out] HCRYPTKEY  *phUserKey
);

Параметры

[in] hProv

Дескриптор HCRYPTPROVпоставщика служб шифрования (CSP), созданный вызовом CryptAcquireContext.

[in] dwKeySpec

Определяет закрытый ключ для использования из контейнера ключей. Это может быть AT_KEYEXCHANGE или AT_SIGNATURE.

Кроме того, некоторые поставщики разрешают доступ к другим пользовательским ключам с помощью этой функции. Дополнительные сведения см. в документации по конкретному поставщику.

[out] phUserKey

Указатель на дескриптор HCRYPTKEY извлеченных ключей. Завершив использование ключа, удалите дескриптор, вызвав функцию CryptDeographyKey .

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

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

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

Коды ошибок, предваряемые "NTE", создаются конкретным поставщиком служб конфигурации. Ниже приведены некоторые возможные коды ошибок.

Код возврата Описание
ERROR_INVALID_HANDLE
Один из параметров указывает недопустимый дескриптор.
ERROR_INVALID_PARAMETER
Один из параметров содержит недопустимое значение. Чаще всего это недопустимый указатель.
NTE_BAD_KEY
Параметр dwKeySpec содержит недопустимое значение.
NTE_BAD_UID
Параметр hProv не содержит допустимый дескриптор контекста.
NTE_NO_KEY
Ключ, запрашиваемый параметром dwKeySpec, не существует.

Требования

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

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

CryptAcquireContext

CryptDeographyKey

CryptGenKey

Функции создания ключей и обмена