AZ Tools

CBOR デコーダー (診断表記)

開発

CBOR(簡潔なバイナリオブジェクト表現、RFC 8949)は WebAuthn/FIDO2、COSE、C509 証明書、多くの IoT プロトコルが使う簡潔なバイナリデータ形式ですが、生のバイトでは読めません。バイトを hex または base64 で貼り付けると、本ツールが仕様の標準的な人間可読形式である CBOR 診断表記に復号します:整数とビッグナム、h'…' 形式のバイト文字列、テキスト文字列、ネストした配列とマップ、0("2013-03-21T20:04:00Z") のようなタグ値、単純値 false/true/null/undefined、half/single/double 浮動小数点、そして _ マーカーで書く不定長の文字列・配列・マップまで。進行しながら検証し、切り詰められた入力や最初のデータ項目の後の余分なバイトを示します。デコーダーは RFC 8949 付録 A の例表全体で検証されています。すべてローカルで動作し、アップロードされません。

出力は RFC 8949 診断表記:h'…' バイト文字列、1 と 1.0、tag(content)、不定長項目には _。

使い方

  1. 入力が hex か base64 かを選択(base64url も可)。
  2. CBOR バイトを貼り付け。
  3. 復号された診断表記を読んでコピー。

よくある質問

診断表記とは?
RFC 8949 §8 で定義された CBOR データ項目の人間可読なテキスト形式です — JSON に似ていますが CBOR が表現できるすべてを表せます:h'…' バイト文字列、整数と浮動小数点の区別(1 と 1.0)、number(content) 形式のタグ、単純値 undefined と simple(n)、そして [_ 1, 2] のようにアンダースコアで書く不定長項目。CBOR ブロブの内容を示す標準的な方法です。
CBOR 値の hex はどう得ますか?
CBOR を出力するものは何でもバイトを返します:WebAuthn の attestationObject、COSE_Key や COSE_Sign1、IoT センサーフレームなど。そのバイトを取得して hex(空白や 0x 接頭辞の有無は問わない)または base64 で貼り付けてください。空白は無視され、base64url も受け付けます。
なぜ 1 と 1.0 を区別して表示するのですか?
CBOR はバイトレベルで整数と浮動小数点を区別し、診断表記はそれを保持します:整数の 1 は 1、浮動小数点の 1 は 1.0 です。half(2 バイト)・single(4)・double(8)の浮動小数点は NaN と ±Infinity を含めて正確な値に復号されます。
「trailing bytes」とは?
CBOR メッセージは 1 つのデータ項目です。最初の完全な項目の後に余分なバイトがあると、ツールは黙って無視せず報告します — 通常、入力が項目の並びか、項目の途中で切れているか、形式(hex か base64)が間違っていることを意味します。

関連ツール