Función CryptFindCertificateKeyProvInfo (wincrypt.h)

La función CryptFindCertificateKeyProvInfo enumera los proveedores criptográficos y sus contenedores para encontrar la clave privada que corresponde a la clave pública del certificado.

Sintaxis

BOOL CryptFindCertificateKeyProvInfo(
  [in] PCCERT_CONTEXT pCert,
  [in] DWORD          dwFlags,
  [in] void           *pvReserved
);

Parámetros

[in] pCert

Puntero a la estructura CERT_CONTEXT del certificado que se va a usar al exportar información de clave pública.

[in] dwFlags

Conjunto de marcas que modifican el comportamiento de esta función. Puede ser cero o uno de los valores siguientes.

Valor Significado
CRYPT_FIND_USER_KEYSET_FLAG
Restringe la búsqueda al contenedor de usuarios. El valor predeterminado es buscar en los contenedores de usuario y máquina.
CRYPT_FIND_MACHINE_KEYSET_FLAG
Restringe la búsqueda al contenedor de la máquina. El valor predeterminado es buscar en los contenedores de usuario y máquina.
CRYPT_FIND_SILENT_KEYSET_FLAG
La aplicación solicita que el CSP no muestre ninguna interfaz de usuario (UI) para este contexto. Si el CSP debe mostrar la interfaz de usuario para funcionar, se produce un error en la llamada y el código de error de NTE_SILENT_CONTEXT se establece como el último error.
 

Las marcas siguientes determinan qué tecnología se usa para obtener la clave. Si ninguna de estas marcas está presente, esta función solo intentará obtener la clave mediante CryptoAPI.

Windows Server 2003 y Windows XP: No se admiten estas marcas.

Valor Significado
CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG
Esta función intentará obtener la clave mediante CryptoAPI. Si se produce un error, esta función intentará obtener la clave mediante cryptography API: Next Generation (CNG).

La propiedad CERT_KEY_PROV_INFO_PROP_ID del certificado se establece en cero si se usa CNG para obtener la clave.

CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG
Esta función solo intentará obtener la clave mediante CNG y no usará CryptoAPI para obtener la clave.

La propiedad CERT_KEY_PROV_INFO_PROP_ID del certificado se establece en cero si se usa CNG para obtener la clave.

CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG
Esta función intentará obtener la clave mediante CNG. Si se produce un error, esta función intentará obtener la clave mediante CryptoAPI.

La propiedad CERT_KEY_PROV_INFO_PROP_ID del certificado se establece en cero si se usa CNG para obtener la clave.

[in] pvReserved

Reservado para uso futuro y debe ser NULL.

Valor devuelto

TRUE si la función encuentra una clave privada que corresponde a la clave pública del certificado dentro de un contenedor buscado; FALSE si la función no encuentra un contenedor o una clave privada dentro de un contenedor.

GetLastError devuelve el siguiente error:

Código devuelto Descripción
NTE_NO_KEY
No se encontró ningún contenedor.

Comentarios

Esta función enumera los proveedores criptográficos y sus contenedores para buscar la clave privada que corresponde a la clave pública del certificado. Para una coincidencia, la función actualiza la propiedad CERT_KEY_PROV_INFO_PROP_ID del certificado. Si el CERT_KEY_PROV_INFO_PROP_ID ya está establecido, se comprueba para determinar si coincide con la clave pública del proveedor. Para una coincidencia, la función omite la enumeración mencionada anteriormente.

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 Crypt32.lib
Archivo DLL Crypt32.dll

Consulte también

Funciones de Administración de datos