CryptStringToBinaryA 関数 (wincrypt.h)
CryptStringToBinary 関数は、書式設定された文字列をバイト配列に変換します。
構文
BOOL CryptStringToBinaryA(
[in] LPCSTR 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
変換する文字列の形式を示します。 これには、次のいずれかの値を指定できます。
値 | 説明 |
---|---|
|
'-----BEGIN ...-----' と '-----END ...-----' の行間の Base64。 下記の注釈を参照してください。 |
|
ヘッダーなしの Base64。 |
|
純粋なバイナリ コピー。 |
|
'-----BEGIN ...-----' と '-----END ...-----' の行間の Base64。 下記の注釈を参照してください。 |
|
16 進数のみの形式。 |
|
ASCII 文字表示を含む 16 進形式。 |
|
次の順序で試行します。
|
|
次の順序で試行します。
|
|
次の順序で試行します。
|
|
'-----BEGIN ...-----' と '-----END ...-----' の行間の Base64。 下記の注釈を参照してください。 |
|
アドレス表示付きの 16 進数。 |
|
ASCII 文字とアドレス表示を含む 16 進数。 |
|
生の 16 進文字列。
Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
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 にすることができます。
戻り値
関数が成功した場合、戻り値は 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 を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |