次の方法で共有


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_BASE64HEADERCRYPT_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