CryptStringToBinaryW 関数 (wincrypt.h)
CryptStringToBinary 関数は、書式設定された文字列をバイト配列に変換します。
構文
BOOL CryptStringToBinaryW(
[in] LPCWSTR pszString,
[in] DWORD cchString,
[in] DWORD dwFlags,
[in] BYTE *pbBinary,
[in, out] DWORD *pcbBinary,
[out] DWORD *pdwSkip,
[out] DWORD *pdwFlags
);
パラメーター
[in] pszString
変換する書式設定された文字列を含む文字列へのポインター。
[in] cchString
変換する書式設定された文字列の文字数。終端 NULL 文字は含まれません。 このパラメーターが 0 の場合、pszString は null で終わる文字列と見なされます。
[in] dwFlags
変換する文字列の形式を示します。 次のいずれかの値を指定できます。
価値 |
意味 |
-
CRYPT_STRING_BASE64HEADER
- 0x00000000
|
フォーム '-----BEGIN ...-----' と '-----END ...-----' の行間の Base64。
以下の「備考」を参照してください。
|
-
CRYPT_STRING_BASE64
- 0x00000001
|
Base64 (ヘッダーなし)。
|
-
CRYPT_STRING_BINARY
- 0x00000002
|
純粋なバイナリ コピー。
|
-
CRYPT_STRING_BASE64REQUESTHEADER
- 0x00000003
|
フォーム '-----BEGIN ...-----' と '-----END ...-----' の行間の Base64。
以下の「備考」を参照してください。
|
-
CRYPT_STRING_HEX
- 0x00000004
|
16 進形式のみ。
|
-
CRYPT_STRING_HEXASCII
- 0x00000005
|
ASCII 文字表示 16 進形式。
|
-
CRYPT_STRING_BASE64_ANY
- 0x00000006
|
次の順序で試行します。
- CRYPT_STRING_BASE64HEADER
- CRYPT_STRING_BASE64
|
-
CRYPT_STRING_ANY
- 0x00000007
|
次の順序で試行します。
- CRYPT_STRING_BASE64HEADER
- CRYPT_STRING_BASE64
- CRYPT_STRING_BINARY
|
-
CRYPT_STRING_HEX_ANY
- 0x00000008
|
次の順序で試行します。
- CRYPT_STRING_HEXADDR
- CRYPT_STRING_HEXASCIIADDR
- CRYPT_STRING_HEX
- CRYPT_STRING_HEXRAW
- CRYPT_STRING_HEXASCII
|
-
CRYPT_STRING_BASE64X509CRLHEADER
- 0x00000009
|
フォーム '-----BEGIN ...-----' と '-----END ...-----' の行間の Base64。
以下の「備考」を参照してください。
|
-
CRYPT_STRING_HEXADDR
- 0x0000000a
|
16 進数(アドレス表示付き)。
|
-
CRYPT_STRING_HEXASCIIADDR
- 0x0000000b
|
ASCII 文字とアドレス表示を含む 16 進数。
|
-
CRYPT_STRING_HEXRAW
- 0x0000000c
|
生の 16 進文字列。
Windows Server 2003 および Windows XP: この値はサポートされていません。
|
-
CRYPT_STRING_STRICT
- 0x20000000
|
このフラグを Base64 データに設定して、バイナリ データの末尾に空白のみが含まれており、最大 3 つが "=" 記号であることを指定します。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。
|
[in] pbBinary
返されたバイト シーケンスを受け取るバッファーへのポインター。 このパラメーターが NULL場合、関数は必要なバッファーの長さを計算し、pcbBinaryによって指 DWORD 内の必要なメモリのサイズ (バイト単位) 返します。
[in, out] pcbBinary
pbBinary バッファーのサイズをバイト単位で格納する、DWORD 変数へのポインター。 関数が戻った後、この変数にはバッファーにコピーされたバイト数が含まれます。 この値がすべてのデータを格納するのに十分な大きさでない場合、関数は失敗し、GetLastError ERROR_MORE_DATAを返します。
pbBinary NULL場合、pcbBinary によって指 DWORD は無視されます。
[out] pdwSkip
-----BEGIN ...-----
ヘッダーの先頭に到達するためにスキップされた文字数を受け取る DWORD 値へのポインター。
ヘッダーが存在しない場合、DWORD は 0 に設定されます。
このパラメーターは省略可能であり、必要ない場合は NULL できます。
[out] pdwFlags
変換で実際に使用されるフラグを受け取る DWORD 値へのポインター。 これらは、dwFlags パラメーターに使用されるのと同じフラグです。 多くの場合、これらは、dwFlags パラメーターで渡されたのと同じフラグになります。 dwFlags に次のいずれかのフラグが含まれている場合、この値は文字列の実際の形式を示すフラグを受け取ります。 このパラメーターは省略可能であり、必要ない場合は NULL できます。
価値 |
意味 |
-
CRYPT_STRING_ANY
|
この変数は、次のいずれかの値を受け取ります。 各値は、文字列の実際の形式を示します。
- CRYPT_STRING_BASE64HEADER
- CRYPT_STRING_BASE64
- CRYPT_STRING_BINARY
|
-
CRYPT_STRING_BASE64_ANY
|
この変数は、次のいずれかの値を受け取ります。 各値は、文字列の実際の形式を示します。
- CRYPT_STRING_BASE64HEADER
- CRYPT_STRING_BASE64
|
-
CRYPT_STRING_HEX_ANY
|
この変数は、次のいずれかの値を受け取ります。 各値は、文字列の実際の形式を示します。
- CRYPT_STRING_HEXADDR
- CRYPT_STRING_HEXASCIIADDR
- CRYPT_STRING_HEX
- CRYPT_STRING_HEXRAW
- CRYPT_STRING_HEXASCII
|
戻り値
関数が成功した場合、戻り値は 0 以外 (true)。
関数が失敗した場合、戻り値は 0 (FALSE)。
CRYPT_STRING_BASE64HEADER、CRYPT_STRING_BASE64REQUESTHEADER、および CRYPT_STRING_BASE64X509CRLHEADER フラグはすべて、この関数によって同じように扱われます。これらは、フォーム -----BEGIN ...-----
と -----END ...-----
の行間で base64 でエンコードされたデータの最初のブロックを解析しようとします。
...
部分は無視され、一致する必要はありません。
解析が成功した場合、dwFlags パラメーターで渡された値は、pdwFlags パラメーターによって指 DWORD で返されます。
CRYPT_STRING_BASE64REQUESTHEADER または CRYPT_STRING_BASE64X509CRLHEADER の値は、要求ヘッダーまたは X.509 証明書失効リスト (CRL) が見つかったという意味ではないことに注意してください。
手記
wincrypt.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして CryptStringToBinary を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 |
価値 |
サポートされる最小クライアント |
Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー |
Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー |
wincrypt.h |
ライブラリ |
Crypt32.lib |
DLL |
Crypt32.dll |
関連項目
CryptBinaryToString