Fungsi CryptStringToBinaryA (wincrypt.h)

Fungsi CryptStringToBinary mengonversi string yang diformat menjadi array byte.

Sintaks

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

Parameter

[in] pszString

Penunjuk ke string yang berisi string yang diformat untuk dikonversi.

[in] cchString

Jumlah karakter string yang diformat yang akan dikonversi, tidak termasuk karakter NULL yang mengakhiri. Jika parameter ini nol, pszString dianggap sebagai string yang dihentikan null.

[in] dwFlags

Menunjukkan format string yang akan dikonversi. Ini bisa menjadi salah satu nilai berikut.

Nilai Makna
CRYPT_STRING_BASE64HEADER
0x00000000
Base64 antara baris formulir '-----BEGIN ...-----' dan '-----END ...-----'. Lihat Keterangan di bawah ini.
CRYPT_STRING_BASE64
0x00000001
Base64, tanpa header.
CRYPT_STRING_BINARY
0x00000002
Salinan biner murni.
CRYPT_STRING_BASE64REQUESTHEADER
0x00000003
Base64 antara baris formulir '-----BEGIN ...-----' dan '-----END ...-----'. Lihat Keterangan di bawah ini.
CRYPT_STRING_HEX
0x00000004
Format heksadesimal saja.
CRYPT_STRING_HEXASCII
0x00000005
Format heksadesimal dengan tampilan karakter ASCII .
CRYPT_STRING_BASE64_ANY
0x00000006
Coba yang berikut ini, secara berurutan:
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_ANY
0x00000007
Coba yang berikut ini, secara berurutan:
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_HEX_ANY
0x00000008
Coba yang berikut ini, secara berurutan:
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII
CRYPT_STRING_BASE64X509CRLHEADER
0x00000009
Base64 antara baris formulir '-----BEGIN ...-----' dan '-----END ...-----'. Lihat Keterangan di bawah ini.
CRYPT_STRING_HEXADDR
0x0000000a
Hex, dengan tampilan alamat.
CRYPT_STRING_HEXASCIIADDR
0x0000000b
Hex, dengan karakter ASCII dan tampilan alamat.
CRYPT_STRING_HEXRAW
0x0000000c
String heksadesimal mentah.

Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

CRYPT_STRING_STRICT
0x20000000
Atur bendera ini untuk data Base64 untuk menentukan bahwa akhir data biner hanya berisi spasi kosong dan paling banyak tiga sama dengan tanda "=".

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

[in] pbBinary

Penunjuk ke buffer yang menerima urutan byte yang dikembalikan. Jika parameter ini NULL, fungsi menghitung panjang buffer yang diperlukan dan mengembalikan ukuran, dalam byte, memori yang diperlukan dalam DWORD yang ditunjukkan oleh pcbBinary.

[in, out] pcbBinary

Penunjuk ke variabel DWORD yang, pada entri, berisi ukuran, dalam byte, dari buffer pbBinary . Setelah fungsi kembali, variabel ini berisi jumlah byte yang disalin ke buffer. Jika nilai ini tidak cukup besar untuk berisi semua data, fungsi gagal dan GetLastError mengembalikan ERROR_MORE_DATA.

Jika pbBinaryADALAH NULL, DWORD yang diabaikan oleh pcbBinary .

[out] pdwSkip

Penunjuk ke nilai DWORD yang menerima jumlah karakter yang dilewati untuk mencapai awal -----BEGIN ...----- header. Jika tidak ada header, maka DWORD diatur ke nol. Parameter ini bersifat opsional dan dapat berupa NULL jika tidak diperlukan.

[out] pdwFlags

Pointer ke nilai DWORD yang menerima bendera yang benar-benar digunakan dalam konversi. Ini adalah bendera yang sama yang digunakan untuk parameter dwFlags . Dalam banyak kasus, ini akan menjadi bendera yang sama yang diteruskan dalam parameter dwFlags . Jika dwFlags berisi salah satu bendera berikut, nilai ini akan menerima bendera yang menunjukkan format string yang sebenarnya. Parameter ini bersifat opsional dan dapat berupa NULL jika tidak diperlukan.

Nilai Makna
CRYPT_STRING_ANY
Variabel ini akan menerima salah satu nilai berikut. Setiap nilai menunjukkan format string yang sebenarnya.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_BASE64_ANY
Variabel ini akan menerima salah satu nilai berikut. Setiap nilai menunjukkan format string yang sebenarnya.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_HEX_ANY
Variabel ini akan menerima salah satu nilai berikut. Setiap nilai menunjukkan format string yang sebenarnya.
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol (TRUE).

Jika fungsi gagal, nilai yang dikembalikan adalah nol (FALSE).

Keterangan

Bendera CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADER, dan CRYPT_STRING_BASE64X509CRLHEADER semuanya diperlakukan identik dengan fungsi ini: Mereka mencoba mengurai blok pertama data yang dikodekan base64 antara baris formulir -----BEGIN ...----- dan -----END ...-----. Bagian ... diabaikan, dan tidak perlu cocok. Jika penguraian berhasil, nilai yang diteruskan dalam parameter dwFlags dikembalikan dalam DWORD yang diarahkan oleh parameter pdwFlags . Perhatikan bahwa nilai CRYPT_STRING_BASE64REQUESTHEADER atau CRYPT_STRING_BASE64X509CRLHEADER tidak berarti bahwa header permintaan atau daftar pencabutan sertifikat (CRL) X.509 ditemukan.

Catatan

Header wincrypt.h mendefinisikan CryptStringToBinary sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

   
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header wincrypt.h
Pustaka Crypt32.lib
DLL Crypt32.dll

Lihat juga

CryptBinaryToString