Compartir a través de


Función CryptGetUserKey (wincrypt.h)

Importante Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.
 
La función CryptGetUserKey recupera un identificador de uno de los dos pares de claves públicas y privadas de un usuario. Esta función solo la usa el propietario de los pares de claves públicas y privadas y solo cuando el identificador de un proveedor de servicios criptográficos (CSP) y su contenedor de claves asociado está disponible. Si el identificador de CSP no está disponible y el certificado del usuario es, use CryptAcquireCertificatePrivateKey.

Sintaxis

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

Parámetros

[in] hProv

HCRYPTPROV identificador de un proveedor de servicios criptográficos (CSP) creado por una llamada a CryptAcquireContext.

[in] dwKeySpec

Identifica la clave privada que se va a usar desde el contenedor de claves. Puede ser AT_KEYEXCHANGE o AT_SIGNATURE.

Además, algunos proveedores permiten el acceso a otras claves específicas del usuario a través de esta función. Para obtener más información, consulte la documentación sobre el proveedor específico.

[out] phUserKey

Puntero al identificador HCRYPTKEY de las claves recuperadas. Cuando haya terminado de usar la clave, elimine el identificador llamando a la función CryptDestroyKey .

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero (TRUE).

Si se produce un error en la función, el valor devuelto es cero (FALSE). Para obtener información de error extendida, llame a GetLastError.

Los códigos de error precedidos por "NTE" se generan mediante el CSP en particular que se usa. A continuación se indican algunos códigos de error posibles.

Código devuelto Descripción
ERROR_INVALID_HANDLE
Uno de los parámetros especifica un identificador que no es válido.
ERROR_INVALID_PARAMETER
Uno de los parámetros contiene un valor que no es válido. Suele ser un puntero que no es válido.
NTE_BAD_KEY
El parámetro dwKeySpec contiene un valor que no es válido.
NTE_BAD_UID
El parámetro hProv no contiene un identificador de contexto válido.
NTE_NO_KEY
La clave solicitada por el parámetro dwKeySpec no existe.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

CryptAcquireContext

CryptDestroyKey

CryptGenKey

Generación de claves y funciones de Exchange