Compartilhar via


Função CryptFormatObject (wincrypt.h)

A função CryptFormatObject formata os dados codificados e retorna uma cadeia de caracteres Unicode no buffer alocado de acordo com o tipo de codificação de certificado.

Sintaxe

BOOL CryptFormatObject(
  [in]      DWORD      dwCertEncodingType,
  [in]      DWORD      dwFormatType,
  [in]      DWORD      dwFormatStrType,
  [in]      void       *pFormatStruct,
  [in]      LPCSTR     lpszStructType,
  [in]      const BYTE *pbEncoded,
  [in]      DWORD      cbEncoded,
  [out]     void       *pbFormat,
  [in, out] DWORD      *pcbFormat
);

Parâmetros

[in] dwCertEncodingType

Tipo de codificação usado no certificado. O tipo de codificação de certificado definido no momento é X509_ASN_ENCODING.

[in] dwFormatType

Formatar valores de tipo. Não usado. Defina como zero.

[in] dwFormatStrType

Valores de tipo de formato de estrutura. Esse parâmetro pode ser zero ou você pode especificar um ou mais dos sinalizadores a seguir usando o operador OR bit a bit para combiná-los.

Valor Significado
0
Exiba os dados em uma única linha. Cada subcampo é concatenado com uma vírgula (,). Para obter mais informações, consulte Comentários.
CRYPT_FORMAT_STR_MULTI_LINE
0x0001
Exiba os dados em várias linhas em vez de uma única linha (o padrão). Para obter mais informações, consulte Comentários.
CRYPT_FORMAT_STR_NO_HEX
0x0010
Desabilita o despejo hexadecimal. Para obter mais informações, consulte Comentários.

[in] pFormatStruct

Um ponteiro para o formato da estrutura. Não usado. Defina como NULL.

[in] lpszStructType

Um ponteiro para um OID que define os dados codificados. Se a palavra de alta ordem do parâmetro lpszStructType for zero, a palavra de baixa ordem especificará o identificador inteiro para o tipo da estrutura fornecida. Caso contrário, esse parâmetro é um ponteiro longo para uma cadeia de caracteres terminada em nulo.

A tabela a seguir lista os OIDs com suporte com a extensão OID associada.

Valor Significado
SPC_FINANCIAL_CRITERIA_OBJID
1.3.6.1.4.1.311.2.1.27
SPC_SP_AGENCY_INFO_OBJID
1.3.6.1.4.1.311.2.1.10
szOID_AUTHORITY_INFO_ACCESS
1.3.6.1.5.5.7.1.1
szOID_AUTHORITY_KEY_IDENTIFIER2
2.5.29.35
szOID_BASIC_CONSTRAINTS2
2.5.29.19
szOID_CERT_POLICIES
2.5.29.32
szOID_CRL_DIST_POINTS
2.5.29.31
szOID_CRL_REASON_CODE
2.5.29.21
szOID_ENHANCED_KEY_USAGE
2.5.29.37
szOID_ISSUER_ALT_NAME2
2.5.29.18
szOID_KEY_ATTRIBUTES
2.5.29.2
szOID_KEY_USAGE
2.5.29.15
szOID_KEY_USAGE_RESTRICTION
2.5.29.4
szOID_NEXT_UPDATE_LOCATION
1.3.6.1.4.1.311.10.2
szOID_RSA_SMIMECapabilities
1.2.840.113549.1.9.15
szOID_SUBJECT_ALT_NAME2
2.5.29.17
szOID_SUBJECT_KEY_IDENTIFIER
2.5.29.14

[in] pbEncoded

Um ponteiro para os dados codificados a serem formatados. Se lpszStructType for um dos OIDs listados acima, o pbEncoded será a extensão codificada.

[in] cbEncoded

O tamanho, em bytes, da estrutura pbEncoded .

[out] pbFormat

Um ponteiro para um buffer que recebe a cadeia de caracteres formatada. Quando o buffer especificado não é grande o suficiente para receber a estrutura decodificada, a função define ERROR_MORE_DATA e armazena o tamanho do buffer necessário, em bytes, na variável apontada por pcbFormat. 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] pcbFormat

Um ponteiro para uma variável que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro pbFormat . Quando a função retorna, a variável apontada pelo parâmetro pcbFormat contém o número de bytes armazenados no buffer. Esse parâmetro pode ser NULL, somente se pbFormat for NULL.

Nota Ao processar os dados retornados no buffer, os aplicativos precisam usar o tamanho real dos dados retornados. O tamanho real pode ser um pouco 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 se ajustem ao buffer.) Na saída, a variável apontada por esse parâmetro é atualizada para refletir o tamanho real dos dados copiados para o buffer.
 

Retornar valor

Se a função for bem-sucedida, o valor retornado será TRUE. Se não for bem-sucedido, o valor retornado será FALSE. Para recuperar informações de erro estendidas, use a função GetLastError .

Comentários

O comportamento padrão dessa função é retornar uma exibição de linha única dos dados codificados, ou seja, cada subcampo é concatenado com uma vírgula (,) em uma linha. Se preferir exibir os dados em várias linhas, defina o sinalizador CRYPT_FORMAT_STR_MULTI_LINE. Cada subcampo será exibido em uma linha separada.

Se não houver nenhuma rotina de formatação instalada ou registrada para o parâmetro lpszStructType , o despejo hexadecimal do CRYPT_INTEGER_BLOB codificado será retornado. Um usuário pode definir o sinalizador CRYPT_FORMAT_STR_NO_HEX para desabilitar o despejo hexadecimal.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CRYPT_INTEGER_BLOB