Função CryptExportPublicKeyInfoFromBCryptKeyHandle (wincrypt.h)

A função CryptExportPublicKeyInfoFromBCryptKeyHandle exporta as informações de chave pública associadas à chave privada correspondente de um provedor.

Sintaxe

BOOL CryptExportPublicKeyInfoFromBCryptKeyHandle(
  [in]            BCRYPT_KEY_HANDLE     hBCryptKey,
  [in]            DWORD                 dwCertEncodingType,
  [in, optional]  LPSTR                 pszPublicKeyObjId,
  [in]            DWORD                 dwFlags,
  [in, optional]  void                  *pvAuxInfo,
  [out, optional] PCERT_PUBLIC_KEY_INFO pInfo,
  [in, out]       DWORD                 *pcbInfo
);

Parâmetros

[in] hBCryptKey

O identificador da chave da qual exportar as informações de chave pública.

[in] dwCertEncodingType

Especifica o tipo de codificação a ser correspondido.

Esse valor pode ser uma combinação bit a bit dos tipos de codificação definidos no momento:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in, optional] pszPublicKeyObjId

Um ponteiro para o OID (identificador de objeto ) que identifica a função instalável a ser usada para exportar a chave. Se a palavra de alta ordem do OID for diferente de zero, pszPublicKeyObjId será um ponteiro para uma cadeia de caracteres OID como "2.5.29.1" ou uma cadeia de caracteres ASCII, como "file". Se a palavra de alta ordem do OID for zero, a palavra de ordem baixa especificará o identificador inteiro a ser usado como o identificador de objeto.

[in] dwFlags

Um valor DWORD que indica como as informações de chave pública são exportadas.

Valor Significado
CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
0x80000000
Ignora chaves públicas no grupo de CRYPT_PUBKEY_ALG_OID_GROUP_ID que são sinalizadas explicitamente com o sinalizador CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG .
CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
0x40000000
Ignora chaves públicas no grupo CRYPT_PUBKEY_ALG_OID_GROUP_ID que são sinalizadas explicitamente com o sinalizador CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG .

[in, optional] pvAuxInfo

Esse parâmetro é reservado para uso futuro e deve ser definido como NULL.

[out, optional] pInfo

Um ponteiro para uma estrutura CERT_PUBLIC_KEY_INFO para receber as informações de chave pública a serem exportadas.

Esse parâmetro pode ser NULL para definir o tamanho dessas informações para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.

[in, out] pcbInfo

Um ponteiro para um DWORD que contém o tamanho, em bytes, do buffer apontado pelo parâmetro pInfo . Quando a função retorna, o DWORD contém o número de bytes armazenados no buffer.

Retornar valor

A função retornará TRUE se for bem-sucedida; caso contrário, retornará FALSE.

Comentários

Se a função CryptExportPublicKeyInfoFromBCryptKeyHandle não conseguir localizar uma função OID instalável para o OID especificado pelo parâmetro pszPublicKeyObjId , ela tentará exportar a chave como uma chave pública RSA (szOID_RSA_RSA). Se a chave for exportada como uma chave pública RSA, os valores dos parâmetros dwFlags e pvAuxInfo não serão usados.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll