Função CryptImportPublicKeyInfoEx (wincrypt.h)
Sintaxe
BOOL 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
);
Parâmetros
[in] hCryptProv
O identificador do CSP para receber a chave pública importada. 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.
[in] aiKeyAlg
Uma estrutura ALG_ID que contém um algoritmo específico do CSP para substituir o algoritmo padrão CALG_RSA_KEYX .
[in] dwFlags
Reservado para uso futuro e deve ser zero.
[in] pvAuxInfo
Reservado para uso futuro e deve ser NULL.
[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 .
Valor retornado
Se a função for bem-sucedida, a função retornará diferente de zero (TRUE).
Se a função falhar, ela retornará zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.
Valor | Descrição |
---|---|
|
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 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
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 |