Companion I-D to draft-nennemann-wimse-execution-context defining ECT semantics mapped to CBOR encoding, COSE_Sign1 signing, and CWT claims for constrained devices and non-HTTP transports (CoAP, MQTT, raw binary). Aligned with JWT draft changes: jti/cti as unified token+task ID (no separate tid), pol/pol_decision optional but paired. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CBOR Serialization of Execution Context Tokens (ECT-CBOR)
draft-nennemann-wimse-execution-context-cbor-00
This Internet-Draft defines a CBOR/COSE/CWT serialization of Execution Context Tokens (ECTs) for the WIMSE working group.
Relationship to the JWT Draft
This document is a companion to draft-nennemann-wimse-execution-context, which defines the full ECT semantics using JSON/JOSE/JWT serialization.
- JWT draft: Normative semantic definition (claims, DAG validation, verification, operational modes, security model)
- CBOR draft (this document): CBOR/COSE/CWT serialization mapping, constrained-environment transports (CoAP, MQTT, raw binary)
The two drafts are designed for independent adoption: a deployment uses one or the other (or both in mixed-format mode), not both simultaneously for the same token.
Files
| File | Description |
|---|---|
draft-nennemann-wimse-execution-context-cbor-00.md |
The complete Internet-Draft in kramdown-rfc format |
claim-mapping.md |
Standalone claim mapping reference table |
README.md |
This file |
Building
Prerequisites
- kramdown-rfc (Ruby gem)
- xml2rfc (Python package)
Build Commands
# Install tools (if not already installed)
gem install kramdown-rfc
pip install xml2rfc
# Generate XML from kramdown
kramdown-rfc2629 draft-nennemann-wimse-execution-context-cbor-00.md > draft-nennemann-wimse-execution-context-cbor-00.xml
# Generate text output
xml2rfc draft-nennemann-wimse-execution-context-cbor-00.xml --text
# Generate HTML output
xml2rfc draft-nennemann-wimse-execution-context-cbor-00.xml --html
Key Design Decisions
- UUIDs as 16-byte binary instead of 36-byte hyphenated text (saves 20 bytes per UUID)
jti/ctias unified token+task ID — no separatetidclaim (matching JWT draft)pol/pol_decisionOPTIONAL but must be paired (matching JWT draft)- Integer claim keys (300-316) instead of string claim names
- Structured hash arrays
[alg_id, hash_bytes]instead of"algorithm:base64url"strings - Integer enumerations for pol_decision (0/1/2) and regulated_domain (0/1/2)
- COSE_Sign1 (single signer) matching the JWT variant's JWS Compact Serialization model
- ~2.8x size reduction compared to JWT variant (~365 bytes vs ~1006 bytes for a typical ECT)
Author
Christian Nennemann Independent Researcher ietf@nennemann.de