Função CryptImportPublicKeyInfo (wincrypt.h)
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.
Código de retorno | 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-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 |