Compartilhar via


PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC função de retorno de chamada (wincrypt.h)

A função de retorno de chamada PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC é chamada por CryptExportPublicKeyInfoEx para exportar um BLOB de chave pública e codificá-lo.

Sintaxe

PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC PfnCryptExportPublicKeyInfoEx2Func;

BOOL PfnCryptExportPublicKeyInfoEx2Func(
  [in]            NCRYPT_KEY_HANDLE hNCryptKey,
  [in]            DWORD dwCertEncodingType,
  [in]            LPSTR pszPublicKeyObjId,
  [in]            DWORD dwFlags,
  [in, optional]  void *pvAuxInfo,
  [out, optional] PCERT_PUBLIC_KEY_INFO pInfo,
  [in, out]       DWORD *pcbInfo
)
{...}

Parâmetros

[in] hNCryptKey

Um identificador do CSP ( provedor de serviços criptográficos ) a ser usado ao exportar as informações de chave pública. Esse identificador deve ser um identificador NCRYPT_KEY_HANDLE que foi criado usando a função NCryptOpenKey .

[in] dwCertEncodingType

Um valor que 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] pszPublicKeyObjId

Um ponteiro para uma cadeia de caracteres que contém o algoritmo de chave pública.

[in] dwFlags

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

[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.

Nota Ao processar os dados retornados no buffer, os aplicativos precisam usar o tamanho real dos dados retornados. O tamanho real pode ser ligeiramente menor do que o tamanho do buffer especificado na entrada. (Na entrada, os tamanhos de buffer geralmente são especificados grandes o suficiente para garantir que os maiores dados de saída possíveis caibam no buffer.) Na saída, a variável apontada por esse parâmetro é atualizada para refletir o tamanho real dos dados copiados para o buffer.
 

Valor retornado

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.

Se essa função de retorno de chamada não der suporte ao algoritmo de assinatura, ela deverá retornar FALSE e chamar SetLastError com ERROR_NOT_SUPPORTED.

Comentários

Você pode usar as funções de suporte do OID para implantar essa função de retorno de chamada. Wincrypt.h define a seguinte constante para essa finalidade.

Constante Definição
CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC "CryptDllExportPublicKeyInfoEx2"

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h