Função CertRetrieveLogoOrBiometricInfo (wincrypt.h)

A função CertRetrieveLogoOrBiometricInfo executa uma recuperação de URL do logotipo ou informações biométricas especificadas na extensão de certificado szOID_LOGOTYPE_EXT ou szOID_BIOMETRIC_EXT . A extensão de szOID_BIOMETRIC_EXT (IETF RFC 3739) dá suporte à adição de uma assinatura ou uma representação pictórica do titular humano do certificado. A extensão de szOID_LOGOTYPE_EXT (IETF RFC 3709) dá suporte à adição de representações pictóricas organizacionais em certificados.

Sintaxe

BOOL CertRetrieveLogoOrBiometricInfo(
  [in]  PCCERT_CONTEXT pCertContext,
  [in]  LPCSTR         lpszLogoOrBiometricType,
  [in]  DWORD          dwRetrievalFlags,
  [in]  DWORD          dwTimeout,
  [in]  DWORD          dwFlags,
        void           *pvReserved,
  [out] BYTE           **ppbData,
  [out] DWORD          *pcbData,
  [out] LPWSTR         *ppwszMimeType
);

Parâmetros

[in] pCertContext

O endereço de uma estrutura CERT_CONTEXT que contém o certificado.

[in] lpszLogoOrBiometricType

O endereço de uma cadeia de caracteres ANSI terminada em nulo que contém uma cadeia de caracteres OID ( identificador de objeto ) que identifica o tipo de informações a serem recuperadas.

Esse parâmetro também pode conter um dos seguintes valores predefinidos.

Valor Significado
CERT_RETRIEVE_ISSUER_LOGO
Recupere o tipo de logotipo do emissor do certificado.
CERT_RETRIEVE_SUBJECT_LOGO
Recupere o tipo de logotipo da entidade do certificado.
CERT_RETRIEVE_COMMUNITY_LOGO
Recupere o tipo de logotipo da comunidade de certificados.
CERT_RETRIEVE_BIOMETRIC_PICTURE_TYPE
Recupere a imagem associada ao certificado.
CERT_RETRIEVE_BIOMETRIC_SIGNATURE_TYPE
Recupere a assinatura associada ao certificado.

[in] dwRetrievalFlags

Um conjunto de sinalizadores que especificam como as informações devem ser recuperadas. Esse parâmetro é passado como dwRetrievalFlags na função CryptRetrieveObjectByUrl .

[in] dwTimeout

A quantidade máxima de tempo, em milissegundos, para aguardar a recuperação.

[in] dwFlags

Esse parâmetro é reservado e precisa ser zero.

pvReserved

Esse parâmetro não é usado e deve ser NULL.

[out] ppbData

O endereço de um ponteiro BYTE que recebe o tipo de logotipo ou dados biométricos. Essa memória deve ser liberada quando não for mais necessária passando esse ponteiro para a função CryptMemFree .

[out] pcbData

O endereço de uma variável DWORD que recebe o número de bytes no buffer ppbData .

[out] ppwszMimeType

O endereço de um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que recebe o tipo MIME (Várias Extensões de Internet Mail) dos dados. Esse parâmetro poderá ser NULL se essas informações não forem necessárias. Essa memória deve ser liberada quando não for mais necessária passando esse ponteiro para a função CryptMemFree .

Esse endereço sempre recebe NULL para tipos biométricos. Você sempre deve garantir que esse parâmetro contenha um endereço de memória válido antes de tentar acessar a memória.

Valor retornado

Retornará diferente de zero se tiver êxito ou zero caso contrário.

Para obter informações de erro estendidas, chame GetLastError. Os possíveis códigos de erro retornados pela função GetLastError incluem, mas não se limitam a, o seguinte.

Código de retorno Descrição
CRYPT_E_HASH_VALUE
O valor de hash computado não corresponde ao valor de hash no certificado.
CRYPT_E_NOT_FOUND
O certificado não contém a extensão szOID_LOGOTYPE_EXT ou szOID_BIOMETRIC_EXT ou o lpszLogoOrBiometricType especificado não foi encontrado.
E_INVALIDARG
Um ou mais dos parâmetros não são válidos.
ERROR_INVALID_DATA
Nenhum dado pode ser recuperado da URL especificada pela extensão de certificado.
ERROR_NOT_SUPPORTED
O certificado não dá suporte à extensão necessária.
NTE_BAD_ALGID
O algoritmo de hash OID é desconhecido.

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
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CryptMemFree