cbor_encode
[structured_message] 把 JSON 载荷编码为 CBOR 字节流(RFC 8949)。 【算法】CBOR 规范编码(RFC 8949 §4.2.1)或不定长教学编码(§3.2.2)。 【参数】
json_payload:待编码的 JSON 文本(≤65536 字符),支持两类教学标记: {"$bytes": ""} 渲染为 byte string(major type 2); {"$tag": , "value": …} 渲染为 tagged value(major type 6)
canonical:True=规范形式(定长最短,map 键按长度+字节序排序)
prefer_indefinite:True=字符串/数组/map 用不定长编码(0x5f/0x7f/0x9f/0xbf + 0xff break)
coerce_integer_keys:True 时形如 "-35"/"0" 的十进制字符串键转整数键(复刻 Nitro attestation 的 protected 头 {1:-35}) 【输出】encoded_in_hex、encoded_length、canonical、structure_tree(逐字段拆解树)、truncated、warnings。 【注意】canonical 与 prefer_indefinite 互斥;JSON 对象键天然是字符串,需要整数键时用 coerce_integer_keys=true。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| canonical | No | True=RFC 8949 §4.2.1 规范编码(定长最短、map 键排序);与 prefer_indefinite 互斥 | |
| json_payload | No | 待编码的结构化消息 JSON 文本(≤65536 字符)。CBOR:{"$bytes":"<hex>"} 渲染 byte string、{"$tag":n,"value":…} 渲染 tagged value;DER:ASN.1 节点 DSL(一节点一主键,如 {"sequence":[{"oid":"1.2…"}]},形态清单见 der_encode 工具描述) | |
| prefer_indefinite | No | True=不定长教学编码(字符串/数组/map 用 0x5f/0x7f/0x9f/0xbf + 0xff break) | |
| coerce_integer_keys | No | True 时形如 "-35"/"0" 的十进制字符串键渲染为 CBOR 整数键(如 Nitro protected 头 {1:-35}) |