Updated Go ValidateHashFormat to plain base64url (no algorithm prefix) per -01 spec and RFC 9449. Python already fixed. All tests pass.
82 lines
3.9 KiB
Markdown
82 lines
3.9 KiB
Markdown
# research.ietf — Status
|
|
|
|
## 2026-04-11 — Refimpl -01 hash format fix + draft rebuild
|
|
|
|
### What was done
|
|
|
|
1. **Go `ValidateHashFormat` updated to -01 spec**: Was still validating old `algorithm:base64url` format (e.g. `sha-256:abc...`). Now validates plain base64url without prefix, matching -01 spec and RFC 9449.
|
|
2. **Go `ErrHashFormat` error message updated** to match new format.
|
|
3. **IMPROVEMENTS.md updated**: Section 5 and section 6 hash format entries corrected.
|
|
4. **Draft rebuilt**: `build.sh` run with `kramdown-rfc2629` (freshly installed) and `xml2rfc`. XML/TXT/HTML regenerated.
|
|
5. **All tests pass**: Python (56 tests, 90% coverage), Go (all pass).
|
|
|
|
### Claim name migration summary (-00 to -01)
|
|
|
|
All claim name changes were already implemented in core library code (types, create, verify, dag) for both Go and Python:
|
|
|
|
| Change | Status |
|
|
|--------|--------|
|
|
| `par` -> `pred` | Done (both) |
|
|
| `pol`/`pol_decision` removed from core, moved to `ect_ext` | Done (both) |
|
|
| `sub` removed | Done (both) |
|
|
| `typ: wimse-exec+jwt` -> `exec+jwt` (preferred) | Done (both) |
|
|
| `MaxParLength` -> `MaxPredLength` | Done (both) |
|
|
| Hash format: `algorithm:base64url` -> plain base64url | **Fixed in this session** (Go was still using old format) |
|
|
|
|
### Remaining items (not claim name changes)
|
|
|
|
- L1 support (unsigned JSON ECTs) — not yet implemented
|
|
- L3 support (audit ledger hash chain + receipts) — not yet implemented
|
|
|
|
---
|
|
|
|
## 2026-04-03 — Draft Assessment and Cleanup
|
|
|
|
### Current State
|
|
|
|
**Primary draft**: `draft-nennemann-wimse-ect-01` (Execution Context Tokens for Distributed Agentic Workflows)
|
|
- Location: `workspace/drafts/ietf-wimse-ect/`
|
|
- Format: kramdown-rfc markdown, 1839 lines
|
|
- Rendered: 43 pages (TXT), XML and HTML available
|
|
- Last build: 2026-03-06
|
|
|
|
### Draft Quality Assessment
|
|
|
|
The -01 draft is **structurally complete and IETF-compliant**:
|
|
|
|
- All required sections present: Abstract, Introduction, Conventions/Definitions, Security Considerations, Privacy Considerations, IANA Considerations, References (normative + informative)
|
|
- BCP 14 (RFC 2119/8174) boilerplate included
|
|
- IANA registrations complete: 2 media types, 1 HTTP header field, 6 JWT claims
|
|
- 3 use cases in appendix (L1, L2, L3)
|
|
- Comprehensive Related Work section (WIMSE, OAuth, TxnTokens, OpenTelemetry, PROV, SCITT, RATS, emerging agent protocols)
|
|
- No TODOs/FIXMEs/TBDs in the draft
|
|
|
|
### Issues Found and Fixed
|
|
|
|
1. **Blog post outdated claim names** (FIXED): `par` -> `pred`, `ext` -> `ect_ext` in `blog-ect-assurance-levels.md`
|
|
2. **Refimpl README outdated** (FIXED): Added migration note documenting -00 vs -01 claim name changes, updated specification references
|
|
3. **Refimpl IMPROVEMENTS.md** (FIXED): Added section 6 documenting all -01 migration tasks needed
|
|
|
|
### Outstanding Issues
|
|
|
|
1. **Refimpl not updated to -01**: Reference implementations (Go + Python) still use -00 claim names (`par` instead of `pred`, `pol`/`pol_decision` instead of `ect_ext`, `sub` not in spec). This is the biggest gap before submission.
|
|
2. **Build tooling**: `kramdown-rfc2629` not installed in this environment. Need Ruby gem to rebuild from markdown.
|
|
3. **Date stale**: XML was built 2026-03-06. Needs rebuild before submission.
|
|
4. **Other draft workspace**: `workspace/drafts/` contains 7 other draft directions (gap-analysis, agent-context-policy, new-drafts, etc.) — none are as mature as the ECT draft.
|
|
|
|
### Analyzer Status
|
|
|
|
- 475 drafts fetched, 361 relevant after false-positive filtering
|
|
- 713 authors, 501 ideas, 132 cross-org convergent ideas, 12 gaps
|
|
- Web UI and blog series functional
|
|
- Pipeline: v0.3.0 publication-ready
|
|
|
|
### Next Steps (Priority Order)
|
|
|
|
1. **P0**: Update refimpl to -01 claim names (pred, ect_ext, exec+jwt typ)
|
|
2. **P0**: Install kramdown-rfc2629 and rebuild draft with current date
|
|
3. **P1**: Submit -01 to IETF datatracker (upload XML)
|
|
4. **P1**: Publish blog post about assurance levels
|
|
5. **P2**: Consider WIMSE mailing list introduction
|
|
6. **P2**: Run updated pipeline on 101 unprocessed drafts
|