CryptBinaryToStringA 関数 (wincrypt.h)

CryptBinaryToString 関数は、バイト配列を書式設定された文字列に変換します。

構文

BOOL CryptBinaryToStringA(
  [in]            const BYTE *pbBinary,
  [in]            DWORD      cbBinary,
  [in]            DWORD      dwFlags,
  [out, optional] LPSTR      pszString,
  [in, out]       DWORD      *pcchString
);

パラメーター

[in] pbBinary

文字列に変換されるバイト配列へのポインター。

[in] cbBinary

pbBinary 配列内の要素の数。

[in] dwFlags

結果の書式設定された文字列の形式を指定します。 このパラメーターには、次の値のいずれかを指定できます。

意味
CRYPT_STRING_BASE64HEADER
0x00000000
Base64。証明書の先頭と末尾のヘッダーが含まれます。
CRYPT_STRING_BASE64
0x00000001
Base64 (ヘッダーなし)。
CRYPT_STRING_BINARY
0x00000002
純粋なバイナリ コピー。
CRYPT_STRING_BASE64REQUESTHEADER
0x00000003
要求の開始ヘッダーと終了ヘッダーを含む Base64。
CRYPT_STRING_HEX
0x00000004
16 進数のみ。
CRYPT_STRING_HEXASCII
0x00000005
ASCII 文字が表示された 16 進数。
CRYPT_STRING_BASE64X509CRLHEADER
0x00000009
Base64。 X.509 CRL の開始ヘッダーと終了ヘッダーを含みます。
CRYPT_STRING_HEXADDR
0x0000000a
16 進数で、アドレスが表示されます。
CRYPT_STRING_HEXASCIIADDR
0x0000000b
ASCII 文字とアドレス表示を含む 16 進数。
CRYPT_STRING_HEXRAW
0x0000000c
生の 16 進文字列。

Windows Server 2003 および Windows XP: この値はサポートされていません。

CRYPT_STRING_BASE64URI
0x0000000d
ヘッダーなしの Base64。RFC 4648 セクション 5 で定義されているように、"+" は "-" に置き換えられ、"/" は "_" に置き換えられます。
CRYPT_STRING_STRICT
0x20000000
ASN.1 テキスト形式の厳密なデコードを適用します。 一部の ASN.1 バイナリ BLOB では、BLOB の最初の数バイトが Base64 テキストとして誤って解釈される可能性があります。 この場合、残りのテキストは無視されます。 このフラグを使用して、BLOB の完全なデコードを強制します。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。

 

上記の値に加えて、次の 1 つ以上の値を指定して、関数の動作を変更できます。

意味
CRYPT_STRING_NOCRLF
0x40000000
エンコードされた文字列に改行文字を追加しないでください。 既定の動作では、改行を表すためにキャリッジ リターン/ライン フィード (CR/LF) ペア (0x0D/0x0A) を使用します。

Windows Server 2003 および Windows XP: この値はサポートされていません。

CRYPT_STRING_NOCR
0x80000000
改行には、改行 (LF) 文字 (0x0A) のみを使用します。 既定の動作では、CR/LF ペア (0x0D/0x0A) を使用して新しい行を表します。

[out, optional] pszString

変換された文字列を受け取るバッファーへのポインター。 返された文字列を保持するために割り当てる必要がある文字数を計算するには、このパラメーターを NULL に設定 します。 関数は、pcchString が指す値に必要な文字数 (終端の NULL 文字を含む) を配置します。

[in, out] pcchString

pszString バッファーのサイズ (TCHARs) を含む DWORD 変数へのポインター。 pszStringNULL の場合、関数は TCHARs の戻り文字列 (終端の null 文字を含む) の長さを計算し、このパラメーターで返します。 pszStringNULL で十分な大きさでない場合、関数はバイナリ データを終端の null 文字を含む指定された文字列形式に変換しますが、pcchStringTCHARの長さを受け取りますが、終端の null 文字は含まれません。

戻り値

関数が成功した場合、関数は 0 以外 (TRUE) を返します。

関数が失敗した場合は、0 (FALSE) を返します。

注釈

CRYPT_STRING_BINARYエンコードを使用する場合を除き、すべての文字列に新しい行シーケンスが追加されます。 既定では、新しい行シーケンスは CR/LF ペア (0x0D/0x0A) です。 dwFlags パラメーターに CRYPT_STRING_NOCR フラグが含まれている場合、新しい行シーケンスは LF 文字 (0x0A)。 dwFlags パラメーターに CRYPT_STRING_NOCRLF フラグが含まれている場合、文字列に新しい行シーケンスは追加されません。

注意

wincrypt.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして CryptBinaryToString を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

こちらもご覧ください

CryptStringToBinary