Freigeben über


CryptStringToBinaryW-Funktion (wincrypt.h)

Die CryptStringToBinary-Funktion konvertiert eine formatierte Zeichenfolge in ein Array von Bytes.

Syntax

BOOL CryptStringToBinaryW(
  [in]      LPCWSTR pszString,
  [in]      DWORD   cchString,
  [in]      DWORD   dwFlags,
  [in]      BYTE    *pbBinary,
  [in, out] DWORD   *pcbBinary,
  [out]     DWORD   *pdwSkip,
  [out]     DWORD   *pdwFlags
);

Parameter

[in] pszString

Ein Zeiger auf eine Zeichenfolge, die die formatierte Zeichenfolge enthält, die konvertiert werden soll.

[in] cchString

Die Anzahl der Zeichen der formatierten Zeichenfolge, die konvertiert werden soll, ohne das beendende NULL-Zeichen . Wenn dieser Parameter 0 ist, wird pszString als null-beendete Zeichenfolge betrachtet.

[in] dwFlags

Gibt das Format der zu konvertierenden Zeichenfolge an. Dies kann einer der folgenden Werte sein.

Wert Bedeutung
CRYPT_STRING_BASE64HEADER
0x00000000
Base64 zwischen Zeilen des Formulars "-----BEGIN ...-----" und "-----END ...-----". Weitere Informationen finden Sie unter Hinweise.
CRYPT_STRING_BASE64
0x00000001
Base64, ohne Header.
CRYPT_STRING_BINARY
0x00000002
Reine binäre Kopie.
CRYPT_STRING_BASE64REQUESTHEADER
0x00000003
Base64 zwischen Zeilen des Formulars "-----BEGIN ...-----" und "-----END ...-----". Weitere Informationen finden Sie unter Hinweise.
CRYPT_STRING_HEX
0x00000004
Nur hexadezimales Format.
CRYPT_STRING_HEXASCII
0x00000005
Hexadezimalformat mit ASCII-Zeichenanzeige .
CRYPT_STRING_BASE64_ANY
0x00000006
Versucht Folgendes in der Reihenfolge:
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_ANY
0x00000007
Versucht Folgendes in der Reihenfolge:
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_HEX_ANY
0x00000008
Versucht Folgendes in der Reihenfolge:
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII
CRYPT_STRING_BASE64X509CRLHEADER
0x00000009
Base64 zwischen Zeilen des Formulars "-----BEGIN ...-----" und "-----END ...-----". Weitere Informationen finden Sie unter Hinweise.
CRYPT_STRING_HEXADDR
0x0000000a
Hex mit Adressanzeige.
CRYPT_STRING_HEXASCIIADDR
0x0000000b
Hex mit ASCII-Zeichen und Adressanzeige.
CRYPT_STRING_HEXRAW
0x0000000c
Eine unformatierte hexadezimale Zeichenfolge.

Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.

CRYPT_STRING_STRICT
0x20000000
Legen Sie dieses Flag für Base64-Daten fest, um anzugeben, dass das Ende der Binärdaten nur Leerzeichen und höchstens drei "="-Zeichen enthält.

Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.

[in] pbBinary

Ein Zeiger auf einen Puffer, der die zurückgegebene Bytesequenz empfängt. Wenn dieser Parameter NULL ist, berechnet die Funktion die Länge des benötigten Puffers und gibt die Größe des erforderlichen Arbeitsspeichers in der DWORD zurück, auf die pcbBinary verweist.

[in, out] pcbBinary

Ein Zeiger auf eine DWORD-Variable , die beim Eintrag die Größe des pbBinary-Puffers in Bytes enthält. Nachdem die Funktion zurückgegeben wurde, enthält diese Variable die Anzahl der Bytes, die in den Puffer kopiert wurden. Wenn dieser Wert nicht groß genug ist, um alle Daten zu enthalten, schlägt die Funktion fehl, und GetLastError gibt ERROR_MORE_DATA zurück.

Wenn pbBinaryNULL ist, wird das DWORD ignoriert, auf das von pcbBinary verwiesen wird.

[out] pdwSkip

Ein Zeiger auf einen DWORD-Wert , der die Anzahl der Zeichen empfängt, die übersprungen werden, um den Anfang des -----BEGIN ...----- Headers zu erreichen. Wenn kein Header vorhanden ist, wird der DWORD-Wert auf 0 festgelegt. Dieser Parameter ist optional und kann NULL sein, wenn er nicht benötigt wird.

[out] pdwFlags

Ein Zeiger auf einen DWORD-Wert , der die flags empfängt, die tatsächlich bei der Konvertierung verwendet werden. Dies sind dieselben Flags, die für den dwFlags-Parameter verwendet werden. In vielen Fällen sind dies dieselben Flags, die im dwFlags-Parameter übergeben wurden. Wenn dwFlags eines der folgenden Flags enthält, erhält dieser Wert ein Flag, das das tatsächliche Format der Zeichenfolge angibt. Dieser Parameter ist optional und kann NULL sein, wenn er nicht benötigt wird.

Wert Bedeutung
CRYPT_STRING_ANY
Diese Variable erhält einen der folgenden Werte. Jeder Wert gibt das tatsächliche Format der Zeichenfolge an.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_BASE64_ANY
Diese Variable erhält einen der folgenden Werte. Jeder Wert gibt das tatsächliche Format der Zeichenfolge an.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_HEX_ANY
Diese Variable erhält einen der folgenden Werte. Jeder Wert gibt das tatsächliche Format der Zeichenfolge an.
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert nonzero (TRUE).

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE).

Hinweise

Die flags CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADER und CRYPT_STRING_BASE64X509CRLHEADER werden von dieser Funktion identisch behandelt: Sie versuchen, den ersten Block der base64-codierten Daten zwischen Zeilen des Formulars -----BEGIN ...----- und -----END ...-----zu analysieren. Die ... Teile werden ignoriert und müssen nicht übereinstimmen. Wenn die Analyse erfolgreich ist, wird der im dwFlags-Parameter übergebene Wert im DWORD zurückgegeben, auf den der pdwFlags-Parameter verweist. Beachten Sie, dass ein Wert von CRYPT_STRING_BASE64REQUESTHEADER oder CRYPT_STRING_BASE64X509CRLHEADER nicht bedeutet, dass ein Anforderungsheader oder eine X.509-Zertifikatsperrliste (CertificateRevocation List , CRL) gefunden wurde.

Hinweis

Der wincrypt.h-Header definiert CryptStringToBinary als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

   
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

CryptBinaryToString