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 変数へのポインター。 関数が戻った後、この変数にはバッファーにコピーされたバイト数が含まれます。 この値がすべてのデータを格納するのに十分な大きさでない場合、関数は失敗し、 GetLastErrorERROR_MORE_DATAを返します。

pbBinaryNULL の場合、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 を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

関連項目

CryptBinaryToString