Função CryptImportPublicKeyInfo (wincrypt.h)

Importante Essa API foi preterida. O software novo e existente deve começar a usar APIs de Próxima Geração de Criptografia. A Microsoft pode remover essa API em versões futuras.
 
A função CryptImportPublicKeyInfo converte e importa as informações de chave pública para o provedor e retorna um identificador da chave pública. CryptImportPublicKeyInfoEx fornece uma versão revisada dessa função.

Sintaxe

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

Parâmetros

[in] hCryptProv

O identificador do CSP ( provedor de serviços criptográficos ) a ser usado ao importar a chave pública. Esse identificador já deve ter sido criado usando CryptAcquireContext.

[in] dwCertEncodingType

Especifica o tipo de codificação usado. É sempre aceitável especificar os tipos de codificação de certificado e mensagem combinando-os com uma operação OR bit a bit, conforme mostrado no exemplo a seguir:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Os tipos de codificação definidos no momento são:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pInfo

O endereço de uma estrutura CERT_PUBLIC_KEY_INFO que contém a chave pública a ser importada para o provedor.

[out] phKey

O endereço de uma variável HCRYPTKEY que recebe o identificador da chave pública importada. Quando terminar de usar a chave pública, libere o identificador chamando a função CryptDestroyKey .

Retornar valor

Se a função for bem-sucedida, o valor retornado será diferente de zero (TRUE).

Se a função falhar, o valor retornado será zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.

Nota Erros das funções chamadas CryptGetUserKey e CryptExportKey podem ser propagados para essa função. Essa função tem o código de erro a seguir.
 
Código de retorno Descrição
ERROR_FILE_NOT_FOUND
Uma função de importação que pode ser instalada ou registrada não pôde ser encontrada para os parâmetros dwCertEncodingType e pInfo-Algorithm.pszObjId> especificados.
 

Se a função falhar, GetLastError poderá retornar um erro de codificação/decodificação ASN.1 ( Abstract Syntax Notation One ). Para obter informações sobre esses erros, consulte Valores retornados de codificação/decodificação asn.1.

Comentários

Essa função normalmente é usada para recuperar a chave pública de um certificado. Isso é feito passando a estrutura de CERT_PUBLIC_KEY_INFO de uma estrutura de certificado preenchida, conforme mostrado no pseudocódigo a seguir.

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 Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CryptExportPublicKeyInfo

Funções Gerenciamento de Dados