Función CryptImportPublicKeyInfo (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 CryptImportPublicKeyInfo convierte e importa la información de clave pública en el proveedor y devuelve un identificador de la clave pública. CryptImportPublicKeyInfoEx proporciona una versión revisada de esta función.

Sintaxis

BOOL CryptImportPublicKeyInfo(
  [in]  HCRYPTPROV            hCryptProv,
  [in]  DWORD                 dwCertEncodingType,
  [in]  PCERT_PUBLIC_KEY_INFO pInfo,
  [out] HCRYPTKEY             *phKey
);

Parámetros

[in] hCryptProv

Identificador del proveedor de servicios criptográficos (CSP) que se va a usar al importar la clave pública. Este identificador ya debe haberse creado con CryptAcquireContext.

[in] dwCertEncodingType

Especifica el tipo de codificación usado. Siempre es aceptable especificar los tipos de codificación de certificados y mensajes al combinarlos con una operación OR bit a bit, como se muestra en el ejemplo siguiente:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Los tipos de codificación definidos actualmente son:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pInfo

Dirección de una estructura de CERT_PUBLIC_KEY_INFO que contiene la clave pública que se va a importar en el proveedor.

[out] phKey

Dirección de una variable HCRYPTKEY que recibe el identificador de la clave pública importada. Cuando haya terminado de usar la clave pública, libere 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.

Nota Los errores de las funciones llamadas CryptGetUserKey y CryptExportKey podrían propagarse a esta función. Esta función tiene el siguiente código de error.
 
Código devuelto Descripción
ERROR_FILE_NOT_FOUND
No se encontró una función de importación que se puede instalar o registrar para los parámetros dwCertEncodingType y pInfo-Algorithm.pszObjId> especificados.
 

Si se produce un error en la función, GetLastError puede devolver un error de codificación y descodificación de sintaxis abstracta Uno (ASN.1). Para obtener información sobre estos errores, vea Valores devueltos de codificación/descodificación de ASN.1.

Comentarios

Esta función se usa normalmente para recuperar la clave pública de un certificado. Para ello, se pasa la estructura de CERT_PUBLIC_KEY_INFO de una estructura de certificado rellenada, como se muestra en el pseudocódigo siguiente.

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)
}

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

CryptExportPublicKeyInfo

Funciones de Administración de datos