EN
Este conteúdo não está disponível em seu idioma, mas aqui está a versão em inglês.

CryptImportPublicKeyInfoEx function

The CryptImportPublicKeyInfoEx function imports public key information into the cryptographic service provider (CSP) and returns a handle of the public key. Additional parameters to override defaults are provided to supplement those in CERT_PUBLIC_KEY_INFO.

Syntax


BOOL WINAPI CryptImportPublicKeyInfoEx(
  _In_   HCRYPTPROV hCryptProv,
  _In_   DWORD dwCertEncodingType,
  _In_   PCERT_PUBLIC_KEY_INFO pInfo,
  _In_   ALG_ID aiKeyAlg,
  _In_   DWORD dwFlags,
  _In_   void *pvAuxInfo,
  _Out_  HCRYPTKEY *phKey
);

Parameters

hCryptProv [in]

The handle of the CSP to receive the imported public key. This handle must have already been created using CryptAcquireContext.

dwCertEncodingType [in]

Specifies the encoding type used. It is always acceptable to specify both the certificate and message encoding types by combining them with a bitwise-OR operation as shown in the following example:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Currently defined encoding types are:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING
pInfo [in]

the address of a CERT_PUBLIC_KEY_INFO structure that contains the public key to import into the provider.

Note  The pzObjId member of the Algorithm member pointed to by the pInfo and dwCertEncodingType parameters determine an installable CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC callback function. If an installable function is not found, an attempt is made to import the key as an RSA Public Key (szOID_RSA_RSA).

aiKeyAlg [in]

An ALG_ID structure that contains a CSP-specific algorithm to override the CALG_RSA_KEYX default algorithm.

dwFlags [in]

Reserved for future use and must be zero.

pvAuxInfo [in]

Reserved for future use and must be NULL.

phKey [out]

The address of an HCRYPTKEY variable that receives the handle of the imported public key. When you have finished using the public key, release the handle by calling the CryptDestroyKey function.

Return value

If the function succeeds, the function returns nonzero (TRUE).

If the function fails, it returns zero (FALSE). For extended error information, call GetLastError.

Note  Errors from the called functions CryptGetUserKey and CryptExportKey might be propagated to this function. This function has the following error code.

ValueDescription
ERROR_FILE_NOT_FOUND

An import function that can be installed or registered could not be found for the specified dwCertEncodingType and pInfo parameters.

 

If the function fails, GetLastError may return an Abstract Syntax Notation One (ASN.1) encoding/decoding error. For information about these errors, see ASN.1 Encoding/Decoding Return Values.

Remarks

This function is normally used to retrieve the public key from a certificate. This is done by passing the CERT_PUBLIC_KEY_INFO structure from a filled-in certificate structure as shown in the following pseudocode.

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

Requirements

Minimum supported client

Windows XP [desktop apps only]

Minimum supported server

Windows Server 2003 [desktop apps only]

Header

Wincrypt.h

Library

Crypt32.lib

DLL

Crypt32.dll

See also

Data Management Functions
CryptExportPublicKeyInfoEx

 

 

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft