Función CryptImportPublicKeyInfo (wincrypt.h)
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.
Código devuelto | Descripción |
---|---|
|
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 |