Condividi tramite


Funzione CryptFormatObject (wincrypt.h)

La funzione CryptFormatObject formatta i dati codificati e restituisce una stringa Unicode nel buffer allocato in base al tipo di codifica del certificato.

Sintassi

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
);

Parametri

[in] dwCertEncodingType

Tipo di codifica usato nel certificato. Il tipo di codifica del certificato attualmente definito usato è X509_ASN_ENCODING.

[in] dwFormatType

Formattare i valori del tipo. Non usato. Imposta su zero.

[in] dwFormatStrType

Valori del tipo di formato struttura. Questo parametro può essere zero oppure è possibile specificare uno o più dei flag seguenti usando l'operatore OR bit per bit per combinarli.

Valore Significato
0
Visualizzare i dati in una singola riga. Ogni sottocampo è concatenato con una virgola (,). Per altre informazioni, vedere la sezione Osservazioni.
CRYPT_FORMAT_STR_MULTI_LINE
0x0001
Visualizzare i dati in più righe anziché in una sola riga (impostazione predefinita). Per altre informazioni, vedere la sezione Osservazioni.
CRYPT_FORMAT_STR_NO_HEX
0x0010
Disabilita il dump esadecimale. Per altre informazioni, vedere la sezione Osservazioni.

[in] pFormatStruct

Puntatore al formato della struttura. Non usato. Impostare su NULL.

[in] lpszStructType

Puntatore a un OID che definisce i dati codificati. Se la parola di ordine elevato del parametro lpszStructType è zero, la parola di ordine basso specifica l'identificatore integer per il tipo della struttura specificata. In caso contrario, questo parametro è un puntatore lungo a una stringa con terminazione Null.

Nella tabella seguente sono elencati gli IDE supportati con l'estensione OID associata.

Valore Significato
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

Puntatore ai dati codificati da formattare. Se lpszStructType è uno degli OID elencati in precedenza, pbEncoded è l'estensione codificata.

[in] cbEncoded

Dimensione, in byte, della struttura pbEncoded .

[out] pbFormat

Puntatore a un buffer che riceve la stringa formattata. Quando il buffer specificato non è sufficientemente grande per ricevere la struttura decodificata, la funzione imposta ERROR_MORE_DATA e archivia le dimensioni del buffer necessarie, in byte, nella variabile a cui punta pcbFormat. Questo parametro può essere NULL per impostare le dimensioni di queste informazioni ai fini dell'allocazione della memoria. Per altre informazioni, vedere Recupero di dati di lunghezza sconosciuta.

[in, out] pcbFormat

Puntatore a una variabile che specifica le dimensioni, in byte, del buffer a cui punta il parametro pbFormat . Quando la funzione viene restituita, la variabile a cui punta il parametro pcbFormat contiene il numero di byte archiviati nel buffer. Questo parametro può essere NULL, solo se pbFormat è NULL.

Nota Quando si elaborano i dati restituiti nel buffer, le applicazioni devono usare le dimensioni effettive dei dati restituiti. Le dimensioni effettive possono essere leggermente inferiori alle dimensioni del buffer specificato nell'input. In caso di input, le dimensioni del buffer vengono in genere specificate sufficientemente grandi per garantire che i dati di output più grandi possibili si adattino al buffer. Nell'output la variabile a cui punta questo parametro viene aggiornata in modo da riflettere le dimensioni effettive dei dati copiati nel buffer.
 

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE. Se non riesce, il valore restituito è FALSE. Per recuperare le informazioni sull'errore estese, usare la funzione GetLastError .

Commenti

Il comportamento predefinito di questa funzione consiste nel restituire una visualizzazione a riga singola dei dati codificati, ovvero ogni sottocampo viene concatenato con una virgola (,) su una riga. Se si preferisce visualizzare i dati in più righe, impostare il flag CRYPT_FORMAT_STR_MULTI_LINE. Ogni sottocampo verrà quindi visualizzato su una riga separata.

Se non è installata o registrata alcuna routine di formattazione per il parametro lpszStructType , verrà restituito il dump esadecimale del CRYPT_INTEGER_BLOB codificato. Un utente può impostare il flag di CRYPT_FORMAT_STR_NO_HEX per disabilitare il dump esadecimale.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CRYPT_INTEGER_BLOB