Initial implementation of the DateKeys Protocol v0.8.1
Reference implementation in Go, built from the implementation plan
(milestones M0 to M5): datekey, profile, provider, codec, agewrap,
extension, capsule, accesskey, the datekeys CLI, official vectors and
fixtures, the mutation corpus, fuzz targets, interop and live tests,
CI workflows, traceability and policy documents.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2 weeks ago
|
|
|
{
|
Spec v0.11 approved: the text of the review, SpecVersion 0.11 and its SHA-256
The author approved the text and the six open decisions on 1 October 2026.
The spec says now what the review left open: the form of the CMS signature
and of the TSTInfo field by field, the ESSCertIDv2 with SHA-256 written, the
padding of the locator at its boundaries, base32 CIDs, the addresses read
without decoding, the issuer shown by the rules of the holder, and the area
decided after the signatures. SpecVersion is 0.11, the records of fixtures
and vectors say so, and decrypt shows an mtime later than a valid seal as an
inconsistency, which 29.7 asks as a SHOULD.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
1 week ago
|
|
|
"spec": "0.11",
|
Initial implementation of the DateKeys Protocol v0.8.1
Reference implementation in Go, built from the implementation plan
(milestones M0 to M5): datekey, profile, provider, codec, agewrap,
extension, capsule, accesskey, the datekeys CLI, official vectors and
fixtures, the mutation corpus, fuzz targets, interop and live tests,
CI workflows, traceability and policy documents.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2 weeks ago
|
|
|
"profile": "datekeys:quicknet:v1",
|
|
|
|
|
"description": "Quicknet date to round resolution (spec §15, §16, §65), generated by the reference implementation.",
|
|
|
|
|
"vectors": [
|
|
|
|
|
{
|
|
|
|
|
"name": "genesis exactly: round 1",
|
|
|
|
|
"requested": "2023-08-23T15:09:27Z",
|
|
|
|
|
"round": 1,
|
|
|
|
|
"effective": "2023-08-23T15:09:27Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "genesis + 1ns: next round",
|
|
|
|
|
"requested": "2023-08-23T15:09:27.000000001Z",
|
|
|
|
|
"round": 2,
|
|
|
|
|
"effective": "2023-08-23T15:09:30Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "genesis + 1s",
|
|
|
|
|
"requested": "2023-08-23T15:09:28Z",
|
|
|
|
|
"round": 2,
|
|
|
|
|
"effective": "2023-08-23T15:09:30Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "genesis + one period: round 2",
|
|
|
|
|
"requested": "2023-08-23T15:09:30Z",
|
|
|
|
|
"round": 2,
|
|
|
|
|
"effective": "2023-08-23T15:09:30Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "genesis + one period + 1ns: round 3",
|
|
|
|
|
"requested": "2023-08-23T15:09:30.000000001Z",
|
|
|
|
|
"round": 3,
|
|
|
|
|
"effective": "2023-08-23T15:09:33Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "genesis - 1s: before the profile",
|
|
|
|
|
"requested": "2023-08-23T15:09:26Z",
|
|
|
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "round 1000 boundary exactly",
|
|
|
|
|
"requested": "2023-08-23T15:59:24Z",
|
|
|
|
|
"round": 1000,
|
|
|
|
|
"effective": "2023-08-23T15:59:24Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "one second before the round 1000 boundary",
|
|
|
|
|
"requested": "2023-08-23T15:59:23Z",
|
|
|
|
|
"round": 1000,
|
|
|
|
|
"effective": "2023-08-23T15:59:24Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "one second after the round 1000 boundary",
|
|
|
|
|
"requested": "2023-08-23T15:59:25Z",
|
|
|
|
|
"round": 1001,
|
|
|
|
|
"effective": "2023-08-23T15:59:27Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "1ns after the round 1000 boundary",
|
|
|
|
|
"requested": "2023-08-23T15:59:24.000000001Z",
|
|
|
|
|
"round": 1001,
|
|
|
|
|
"effective": "2023-08-23T15:59:27Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "half a second after the round 1000 boundary",
|
|
|
|
|
"requested": "2023-08-23T15:59:24.5Z",
|
|
|
|
|
"round": 1001,
|
|
|
|
|
"effective": "2023-08-23T15:59:27Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "normative vector 2030-01-01 (spec §16)",
|
|
|
|
|
"requested": "2030-01-01T00:00:00Z",
|
|
|
|
|
"round": 66884212,
|
|
|
|
|
"effective": "2030-01-01T00:00:00Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "1ns after 2030-01-01",
|
|
|
|
|
"requested": "2030-01-01T00:00:00.000000001Z",
|
|
|
|
|
"round": 66884213,
|
|
|
|
|
"effective": "2030-01-01T00:00:03Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "normative vector round 66432123 (spec §16)",
|
|
|
|
|
"requested": "2029-12-16T07:15:33Z",
|
|
|
|
|
"round": 66432123,
|
|
|
|
|
"effective": "2029-12-16T07:15:33Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "offset timezone equals UTC instant",
|
|
|
|
|
"requested": "2026-10-22T19:00:00.001+02:00",
|
|
|
|
|
"round": 33295013,
|
|
|
|
|
"effective": "2026-10-22T17:00:03Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "last representable round time",
|
|
|
|
|
"requested": "9999-12-31T23:59:57Z",
|
|
|
|
|
"round": 83903165811,
|
|
|
|
|
"effective": "9999-12-31T23:59:57Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "after the last representable round",
|
|
|
|
|
"requested": "9999-12-31T23:59:59Z",
|
|
|
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|