CryptFormatObject-Funktion (wincrypt.h)

Die CryptFormatObject-Funktion formatiert die codierten Daten und gibt eine Unicode-Zeichenfolge im zugeordneten Puffer gemäß dem Zertifikatcodierungstyp zurück.

Syntax

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

Parameter

[in] dwCertEncodingType

Typ der Codierung, die für das Zertifikat verwendet wird. Der aktuell definierte Zertifikatcodierungstyp ist X509_ASN_ENCODING.

[in] dwFormatType

Formattypwerte. Wird nicht verwendet. Auf NULL festlegen.

[in] dwFormatStrType

Werte des Strukturformattyps. Dieser Parameter kann null sein, oder Sie können eines oder mehrere der folgenden Flags angeben, indem Sie den bitweisen OR-Operator verwenden, um sie zu kombinieren.

Wert Bedeutung
0
Zeigen Sie die Daten in einer einzigen Zeile an. Jedes Unterfeld wird mit einem Komma (,) verkettet. Weitere Informationen finden Sie in den Hinweisen.
CRYPT_FORMAT_STR_MULTI_LINE
0x0001
Zeigen Sie die Daten in mehreren Zeilen anstelle einer einzelnen Zeile (Standard) an. Weitere Informationen finden Sie in den Hinweisen.
CRYPT_FORMAT_STR_NO_HEX
0x0010
Deaktiviert das Hexadezimalabbild. Weitere Informationen finden Sie in den Hinweisen.

[in] pFormatStruct

Ein Zeiger auf das Format der Struktur. Wird nicht verwendet. Auf NULL festgelegt.

[in] lpszStructType

Ein Zeiger auf eine OID, die die codierten Daten definiert. Wenn das hochgeordnete Wort des lpszStructType-Parameters 0 ist, gibt das Wort mit niedriger Reihenfolge den ganzzahligen Bezeichner für den Typ der angegebenen Struktur an. Andernfalls ist dieser Parameter ein langer Zeiger auf eine NULL-Zeichenfolge.

In der folgenden Tabelle sind unterstützte OIDs mit der zugehörigen OID-Erweiterung aufgeführt.

Wert Bedeutung
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

Ein Zeiger auf die codierten Daten, die formatiert werden sollen. Wenn lpszStructType eine der oben aufgeführten OIDs ist, ist pbEncoded die codierte Erweiterung.

[in] cbEncoded

Die Größe der pbEncoded-Struktur in Bytes.

[out] pbFormat

Ein Zeiger auf einen Puffer, der die formatierte Zeichenfolge empfängt. Wenn der angegebene Puffer nicht groß genug ist, um die decodierte Struktur zu empfangen, legt die Funktion ERROR_MORE_DATA fest und speichert die erforderliche Puffergröße in Bytes in der Variablen, auf die von pcbFormat verwiesen wird. Dieser Parameter kann NULL sein, um die Größe dieser Informationen für Speicherzuordnungszwecke festzulegen. Weitere Informationen finden Sie unter Abrufen von Daten unbekannter Länge.

[in, out] pcbFormat

Ein Zeiger auf eine Variable, der die Größe des Puffers in Bytes angibt, auf den der pbFormat-Parameter verweist. Wenn die Funktion zurückgibt, enthält die Variable, auf die der parameter pcbFormat verweist, die Anzahl der im Puffer gespeicherten Bytes. Dieser Parameter kann nur NULL sein, wenn pbFormatNULL ist.

Hinweis Bei der Verarbeitung der im Puffer zurückgegebenen Daten müssen Anwendungen die tatsächliche Größe der zurückgegebenen Daten verwenden. Die tatsächliche Größe kann etwas kleiner sein als die Größe des Puffers, der bei der Eingabe angegeben wurde. (Bei der Eingabe werden Puffergrößen in der Regel groß genug angegeben, um sicherzustellen, dass die größtmöglichen Ausgabedaten in den Puffer passen.) Bei der Ausgabe wird die Variable aktualisiert, auf die dieser Parameter verweist, um die tatsächliche Größe der in den Puffer kopierten Daten widerzuspiegeln.
 

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE. Wenn dies nicht erfolgreich ist, ist der Rückgabewert FALSE. Verwenden Sie zum Abrufen erweiterter Fehlerinformationen die GetLastError-Funktion .

Hinweise

Das Standardverhalten dieser Funktion besteht darin, eine einzeilige Anzeige der codierten Daten zurückzugeben, d. h. jedes Unterfeld wird mit einem Komma (,) in einer Zeile verkettet. Wenn Sie die Daten lieber in mehreren Zeilen anzeigen möchten, legen Sie das flag CRYPT_FORMAT_STR_MULTI_LINE fest. Jedes Unterfeld wird dann in einer separaten Zeile angezeigt.

Wenn für den lpszStructType-Parameter keine Formatierungsroutine installiert oder registriert ist, wird das Hexadezimalabbild des codierten CRYPT_INTEGER_BLOB zurückgegeben. Ein Benutzer kann das CRYPT_FORMAT_STR_NO_HEX-Flag festlegen, um das Hexadezimalabbild zu deaktivieren.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

CRYPT_INTEGER_BLOB