Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{
Specification 0.15: the release object, a release in hand and step 9.c
specVersion is 0.15 and testdata is synced with datekeys-go at 3c3e737
(branch v0.15): every file changes its spec field, mutations.json gains the
field source and four cases, and vectors/release.json and releases/ are new
(142 files).
release.dart, as provider of Go at 2eeca40, with its texts: encodeRelease
and decodeRelease of the release object (spec v0.15, 47.1) with the CBOR
profile of the library, its size first, then its type and version, then its
schema; parseRelease, which also reads drand's JSON with the rules of
encoding/json of Go for its three fields; verifyRelease checks the chain hash
a release names, ERR_PROFILE_MISMATCH, before its round and its signature;
ReleaseSupplier, EncodedRelease and supplyRelease, a release in the caller's
hand; and ReleaseArchive, the lookup of a local release archive (50), whose
failures are ERR_RELEASE_UNAVAILABLE at step 9.
open: OpenOptions.release takes a release in hand, exclusive with source. It
is not compared with the clock (step 9.c); Opened.clockBehind reports a clock
behind it, and the step 9 detail is Go's. Step 10 starts with the layers of
the object. A network source keeps its behaviour. Opened.release carries the
chain hash of the pinned profile.
Vectors: mutation_texts.json is regenerated with tool/mutation_go_texts.go,
which now replays each case with its source as testkit does: 149 cases
change only the detail of step 9 ("release supplied by the caller"), the
case "round not reached yet" now opens, and the four new cases are added.
release_vectors.json, the open vectors, and the formats, locator, security
and seal vectors come out the same at 3c3e737 but for their spec field.
tool/release_archive_go_texts.go writes the texts of provider.Archive on
edited archives; tool/release_copy.dart copies release.json, releases/ and
those texts to release.g.dart for the tests compiled to JavaScript.
errors_spec_test reads the spec at the commit of testdata/SOURCE.json rather
than at its tag.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 days ago
"spec" : "0.15" ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
"generator" : "tool/formats_go_vectors.go" ,
"description" : "RFC 3339: time.Parse with time.RFC3339Nano, ok or error, and Format with RFC3339 and RFC3339Nano in UTC; datekey.Resolve, RoundTime and DateKey.Validate, and Profile.MaxRound, on the Quicknet profile with other genesis times and periods." ,
"parse" : [
{ "input" : "2023-08-23T15:09:27Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 1692803367 } ,
{ "input" : "2023-08-23T15:09:27.000000001Z" , "nanos" : 1 , "result" : "ok" , "seconds" : 1692803367 } ,
{ "input" : "2026-10-22T19:00:00.001+02:00" , "nanos" : 1000000 , "result" : "ok" , "seconds" : 1792688400 } ,
{ "input" : "2023-08-23T5:09:27Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 1692767367 } ,
{ "input" : "2023-08-23T15:09:27,5Z" , "nanos" : 500000000 , "result" : "ok" , "seconds" : 1692803367 } ,
{ "input" : "2023-08-23T15:09:27+24:00" , "nanos" : 0 , "result" : "ok" , "seconds" : 1692716967 } ,
{ "input" : "2023-08-23T15:09:27-23:60" , "nanos" : 0 , "result" : "ok" , "seconds" : 1692889767 } ,
{ "input" : "0000-01-01T00:00:00+24:00" , "nanos" : 0 , "result" : "ok" , "seconds" : -62167305600 } ,
{ "input" : "9999-12-31T23:59:59-24:00" , "nanos" : 0 , "result" : "ok" , "seconds" : 253402387199 } ,
{ "input" : "2023-08-23T15:09:27.1234567899Z" , "nanos" : 123456789 , "result" : "ok" , "seconds" : 1692803367 } ,
{ "input" : "2024-02-29T00:00:00Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 1709164800 } ,
{ "input" : "2100-02-29T00:00:00Z" , "result" : "error" } ,
{ "input" : "" , "result" : "error" } ,
{ "input" : "x" , "result" : "error" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "input" : "7446-12-16T06:58:33+21:54" , "nanos" : 0 , "result" : "ok" , "seconds" : 172835975073 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "input" : "1369-11-22T17:33:48,0060456845*18:30" , "result" : "error" } ,
{ "input" : "0000-09-06T25:09:46" , "result" : "error" } ,
{ "input" : "4855-02-04T06:07:-1-17:30" , "result" : "error" } ,
{ "input" : "7533-06-23T23:32:46z" , "result" : "error" } ,
{ "input" : "0642-01-22T23:15:40z" , "result" : "error" } ,
{ "input" : "6543-12-14T21:32:57" , "result" : "error" } ,
{ "input" : "3112-02-29T01:22:43z" , "result" : "error" } ,
{ "input" : "0723-06-06T05:53:44Z" , "nanos" : 0 , "result" : "ok" , "seconds" : -39338071576 } ,
{ "input" : "6019-02-8T11:37:06+04:59" , "result" : "error" } ,
{ "input" : "4465-10-31T22:123:54Z" , "result" : "error" } ,
{ "input" : "+2023-05-22T02:44:56+20:00" , "result" : "error" } ,
{ "input" : "2434-07-01T13:07:34.0095932z" , "result" : "error" } ,
{ "input" : "5317-01-14T17:02:58,056582+02:00" , "nanos" : 56582000 , "result" : "ok" , "seconds" : 105622326178 } ,
{ "input" : "4779-10-08T02:19 44.0098454777-17:00" , "result" : "error" } ,
{ "input" : "7837-05-02T12:123:29,008+0200" , "result" : "error" } ,
{ "input" : "3246-05-11T20:09:50,091027777+01:45" , "nanos" : 91027777 , "result" : "ok" , "seconds" : 40278018290 } ,
{ "input" : "8850-09t09T00:20:15" , "result" : "error" } ,
{ "input" : "8314-09-33T20:22:12.0841284783777Z" , "result" : "error" } ,
{ "input" : "5695-03-07T15:33:33.00278401-1100" , "result" : "error" } ,
{ "input" : "7817-01-04T01:18:56.08342-02:30" , "nanos" : 83420000 , "result" : "ok" , "seconds" : 184513780136 } ,
{ "input" : "3325-03-03T16:50:61.0426Z" , "result" : "error" } ,
{ "input" : "1821-07-18T06:45:51.001963z" , "result" : "error" } ,
{ "input" : "9749-04-17T01:00:56,Z" , "result" : "error" } ,
{ "input" : "8809-11-16T02:32:19-18:59" , "nanos" : 0 , "result" : "ok" , "seconds" : 215845680679 } ,
{ "input" : "9507-04-04T06:12:5*04:30" , "result" : "error" } ,
{ "input" : "7600-07-08T17:34:15.0216393777-07:30" , "nanos" : 21639377 , "result" : "ok" , "seconds" : 177682035855 } ,
{ "input" : "5419-11-02T2:21:10,0033*0502" , "result" : "error" } ,
{ "input" : "7397-02-07T14:55:21.009806Z " , "result" : "error" } ,
{ "input" : "0775-07-12:8:44:45,99538+00:41" , "result" : "error" } ,
{ "input" : "4068-06-10T12:11:06Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 66220459866 } ,
{ "input" : "0041-05-11T00:61:40.20224294+1100" , "result" : "error" } ,
{ "input" : "9083-05-13T00:35:46" , "result" : "error" } ,
{ "input" : "1276-05-21T15:28:51-1821" , "result" : "error" } ,
{ "input" : "7593-05-2T09:16:18-20:30" , "result" : "error" } ,
{ "input" : "6101-6-03T18:16:26,0877-2360" , "result" : "error" } ,
{ "input" : "0256-02-02T10:11:52*21:00" , "result" : "error" } ,
{ "input" : "9771-02-29T20:52:39.00769730768Z" , "result" : "error" } ,
{ "input" : " 0733-06-0aT01:40:41+0100" , "result" : "error" } ,
{ "input" : "8536-02-29T11:07:46-18:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 207208129066 } ,
{ "input" : "5246T07-20T06:16:15.0082131Z" , "result" : "error" } ,
{ "input" : "3406-0808T11:27:35.00666383*19:30" , "result" : "error" } ,
{ "input" : "8898-02-29T09:52:10.08590422" , "result" : "error" } ,
{ "input" : "6622-01-12T19:57:23-1:5" , "result" : "error" } ,
{ "input" : "5516-03-23T13:59:12.0436734z" , "result" : "error" } ,
{ "input" : "4387t08-9T01:03:57-13:12" , "result" : "error" } ,
{ "input" : "8488-02-29T14:56:48" , "result" : "error" } ,
{ "input" : "5602-04-09T11:08:33.0103912878777+24:61" , "result" : "error" } ,
{ "input" : " 7522-04-5T16:19:46-20:30" , "result" : "error" } ,
{ "input" : "9574-09-14T15:30:12.0560970-00:35 " , "result" : "error" } ,
{ "input" : "3154-04-01T12:25:00.00131262440+11:00" , "nanos" : 1312624 , "result" : "ok" , "seconds" : 37371201900 } ,
{ "input" : "7311-05-27T18:61:17z" , "result" : "error" } ,
{ "input" : "3978-04-24T11:39:23z" , "result" : "error" } ,
{ "input" : "5443-05-06T02:21:06*0a:61" , "result" : "error" } ,
{ "input" : "8212-11-09T01:52:46-11:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 197005526566 } ,
{ "input" : "3715-09-15T04:42:07" , "result" : "error" } ,
{ "input" : "2983-05-20T06:32:59-21:29" , "nanos" : 0 , "result" : "ok" , "seconds" : 31979332919 } ,
{ "input" : "4436-06-19T13:123:31Z" , "result" : "error" } ,
{ "input" : "5148-00-24T07:43:10" , "result" : "error" } ,
{ "input" : "5091-3-25T08:32:19.536199*1230" , "result" : "error" } ,
{ "input" : "0780-01-18T06:51:59,00650" , "result" : "error" } ,
{ "input" : " 3126-07-14T23:57:55.67941947-06:30" , "result" : "error" } ,
{ "input" : "4311-02-30T12:123:58.02875180Z" , "result" : "error" } ,
{ "input" : "3950-12-13T03:16:15-06:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 62512681575 } ,
{ "input" : "8263-04-16T23:-1:54.018*04:00" , "result" : "error" } ,
{ "input" : "4804-05-19T06:43:60,027" , "result" : "error" } ,
{ "input" : "5339-01-07T23:09:55*0630" , "result" : "error" } ,
{ "input" : "4181-07-00T02:25:04z" , "result" : "error" } ,
{ "input" : "6973-03-02T03:6:13,00635499-2157" , "result" : "error" } ,
{ "input" : "1878-00-21T18:30:2.87z" , "result" : "error" } ,
{ "input" : "1243-04-17T00:09:32.00671109" , "result" : "error" } ,
{ "input" : "7276-08-05T17:0:00" , "result" : "error" } ,
{ "input" : "0460-09-24T00:47:-1-2037" , "result" : "error" } ,
{ "input" : "5304-04-11T16:52t06,00277777*0a:60" , "result" : "error" } ,
{ "input" : "8644-12-22T07:01:03,+15:30" , "result" : "error" } ,
{ "input" : "9072-00-11T02:00:09*17:30" , "result" : "error" } ,
{ "input" : " 1465-12-04T11:6:48.001" , "result" : "error" } ,
{ "input" : "5766-06-31T22:4:23*1003" , "result" : "error" } ,
{ "input" : "2782-a0-09T05::33*00:29" , "result" : "error" } ,
{ "input" : "5222-12-24T23:58:11-23:00" , "nanos" : 0 , "result" : "ok" , "seconds" : 102654255491 } ,
{ "input" : "4928-02-30/18:18/30.0669954037+0000" , "result" : "error" } ,
{ "input" : "202-02-23T12:45:60,107z" , "result" : "error" } ,
{ "input" : "4812-03-31T17:44:08.07z" , "result" : "error" } ,
{ "input" : "6551-12-14T05:35:28" , "result" : "error" } ,
{ "input" : "3097-04-19T09:37:46.9-0730" , "result" : "error" } ,
{ "input" : "6109-13-16T5:3:47Z" , "result" : "error" } ,
{ "input" : "0765-06-10T02:19:32,8" , "result" : "error" } ,
{ "input" : "5004-12-07T14:58:07.000727z" , "result" : "error" } ,
{ "input" : "3861-09-22T21:28:59.0667527Z" , "nanos" : 66752700 , "result" : "ok" , "seconds" : 59697120539 } ,
{ "input" : "7618-03-03T17:44:03.057174z" , "result" : "error" } ,
{ "input" : "10000-10-22T25:53:9.4109" , "result" : "error" } ,
{ "input" : "7854-08-28T00:49:23-12:00" , "nanos" : 0 , "result" : "ok" , "seconds" : 185701812563 } ,
{ "input" : "0196-12-04T14:30:41,00830Z" , "nanos" : 8300000 , "result" : "ok" , "seconds" : -55952760559 } ,
{ "input" : "8588-02-30T07:36:04" , "result" : "error" } ,
{ "input" : "3022-05-30T01:43:31+03:00" , "nanos" : 0 , "result" : "ok" , "seconds" : 33210773011 } ,
{ "input" : "1096-12-27T16:32:11-2430" , "result" : "error" } ,
{ "input" : "2211-07-21T09:48:58*1:00" , "result" : "error" } ,
{ "input" : "5247-07-25T07:34:49Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 103429899289 } ,
{ "input" : "1704-06-26T19:54:43-15:06" , "nanos" : 0 , "result" : "ok" , "seconds" : -8378773157 } ,
{ "input" : "3470-08-30/22:12:45.38Z" , "result" : "error" } ,
{ "input" : "6503-05-26T06:57:04.056918-18:02" , "nanos" : 56918000 , "result" : "ok" , "seconds" : 143060259544 } ,
{ "input" : "9830-a0t12T21:41:58" , "result" : "error" } ,
{ "input" : "7199-10-15T11:57:27Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 165036139047 } ,
{ "input" : "4436-02-08T6:50:0a.005-0000" , "result" : "error" } ,
{ "input" : " 1884-02-17T14:23:01-19:53" , "result" : "error" } ,
{ "input" : "6976-02-30T02:52:35Z" , "result" : "error" } ,
{ "input" : "0000-04-05T10:13:18.0044-07:30" , "nanos" : 4400000 , "result" : "ok" , "seconds" : -62158947402 } ,
{ "input" : "6556-13-17T-1:00t34.836885Z" , "result" : "error" } ,
{ "input" : "4025-01-24T14:6:01.0568-17:00" , "result" : "error" } ,
{ "input" : "3512-0-28T21:11:53Z" , "result" : "error" } ,
{ "input" : "5025-01-11T08:54:55.0017+00:30" , "nanos" : 1700000 , "result" : "ok" , "seconds" : 96407396695 } ,
{ "input" : "3324-12-31T04:59:46" , "result" : "error" } ,
{ "input" : "1085-07-11T04:60:33Z" , "result" : "error" } ,
{ "input" : "5960-02-13T00:123:36-24:17" , "result" : "error" } ,
{ "input" : "3733-02-29T09:51:23,05-1830" , "result" : "error" } ,
{ "input" : "1551-05-12T15:0a:15z" , "result" : "error" } ,
{ "input" : "4946-03-13T06:46:30+20:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 93919601790 } ,
{ "input" : "6287-06-10T12:47:47+13:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 136245194267 } ,
{ "input" : "0677-00-21T17:47:37-1333" , "result" : "error" } ,
{ "input" : "3381-06-02T23:08:13-01:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 44540152693 } ,
{ "input" : "3120-0a-16T10:28:30+0a61" , "result" : "error" } ,
{ "input" : "2128-04-12T11:27:40+06:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 4994801860 } ,
{ "input" : "4452-07-05:07:17:42-1800" , "result" : "error" } ,
{ "input" : "0839-07-16T02:46:23.001477882057Z" , "nanos" : 1477882 , "result" : "ok" , "seconds" : -35673945217 } ,
{ "input" : "6212-09-22T02:13:32Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 133887435212 } ,
{ "input" : "1516-09-13T21:00:06" , "result" : "error" } ,
{ "input" : "7788-02-28T03:11:11.0847364z" , "result" : "error" } ,
{ "input" : "6126-01-09T15 40:52.0961886161*19:00" , "result" : "error" } ,
{ "input" : "1107-11-03T:54:17*17:30" , "result" : "error" } ,
{ "input" : "5087-08-07T17:03:06" , "result" : "error" } ,
{ "input" : "1914-09-16T08:27:61.0369Z" , "result" : "error" } ,
{ "input" : "6755-12-19T09:17:07*1530Z" , "result" : "error" } ,
{ "input" : "6551-06-04T06:37:0a+19:00" , "result" : "error" } ,
{ "input" : "1076-05-31T09:02:11+16:24" , "nanos" : 0 , "result" : "ok" , "seconds" : -28198912909 } ,
{ "input" : "0140-02-28T09:37:45.22z" , "result" : "error" } ,
{ "input" : "8736-06-24T24:43:36-13:30" , "result" : "error" } ,
{ "input" : "3633-05-04T21:42:34" , "result" : "error" } ,
{ "input" : "6886-00-03T21:06:39-06:00" , "result" : "error" } ,
{ "input" : "8879-03-19T13:38T7-22:53" , "result" : "error" } ,
{ "input" : "5104-06-18T08:09:8.334613028+04:26" , "result" : "error" } ,
{ "input" : "3462-01-03T12:00:57.8246064507777Z" , "nanos" : 824606450 , "result" : "ok" , "seconds" : 47083204857 } ,
{ "input" : "3725-06-27T14:27:11.001986574z" , "result" : "error" } ,
{ "input" : "2905-06-30T0a:37:07.58093" , "result" : "error" } ,
{ "input" : "0283-04-10T20:05:50.53281100" , "result" : "error" } ,
{ "input" : "5511-09-13T11:58:35,93+08:48" , "nanos" : 930000000 , "result" : "ok" , "seconds" : 111765150635 } ,
{ "input" : "9907-04-30T06:05:54.4417z" , "result" : "error" } ,
{ "input" : "7206-02-29T13:42:4Z" , "result" : "error" } ,
{ "input" : "20a3-07-30T04:34:07,0624+03:50" , "result" : "error" } ,
{ "input" : "6057-02-29T25:48:z" , "result" : "error" } ,
{ "input" : "7770-07-22T14t5-31Z" , "result" : "error" } ,
{ "input" : "9459-04-07T11:08:46+04:26" , "nanos" : 0 , "result" : "ok" , "seconds" : 236338324966 } ,
{ "input" : "+2023-04-17T02:12:37.07592Z" , "result" : "error" } ,
{ "input" : " 7985-12-14T22:24:36+24:00" , "result" : "error" } ,
{ "input" : "4617-06-24Ta0:56:52-1:5" , "result" : "error" } ,
{ "input" : "6793-02-02T12:59:47*19:32" , "result" : "error" } ,
{ "input" : "2527-03-11T09:8:18+19:00" , "result" : "error" } ,
{ "input" : "202-04-26T04:14:36.413802062Z" , "result" : "error" } ,
{ "input" : "9898-02t29T03:17:57.0+1000" , "result" : "error" } ,
{ "input" : "5921-11-02T18:2:19.09331" , "result" : "error" } ,
{ "input" : "3467-01-17T123:60:32*04:30" , "result" : "error" } ,
{ "input" : "1797-05-20T10:59:01,000z" , "result" : "error" } ,
{ "input" : "9503-08-17T4:03:56.2549z" , "result" : "error" } ,
{ "input" : "5600-11-21T20:09:59,33Z" , "nanos" : 330000000 , "result" : "ok" , "seconds" : 114579864599 } ,
{ "input" : "0303-05-07T17:53:22.00943597+08:30" , "nanos" : 9435970 , "result" : "ok" , "seconds" : -52594583798 } ,
{ "input" : "6653-01-25T02:8:37,08Z" , "result" : "error" } ,
{ "input" : "4181-02t19T22:34:31" , "result" : "error" } ,
{ "input" : "0000-11-05T04:45:59+24:60" , "nanos" : 0 , "result" : "ok" , "seconds" : -62140594441 } ,
{ "input" : "5268-02-13T01:26:32Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 104078568392 } ,
{ "input" : "1541-00-16T00:59:32Z" , "result" : "error" } ,
{ "input" : "0669-12-14T15:44:07.838964+0130" , "result" : "error" } ,
{ "input" : " 8396-07-31T21:59:26.365+20:01" , "result" : "error" } ,
{ "input" : "7668-12-14T17:60:35,0011Z" , "result" : "error" } ,
{ "input" : "2790-07T03T08:00:01Z" , "result" : "error" } ,
{ "input" : "6233-11-28T03:56:21,3z" , "result" : "error" } ,
{ "input" : "2956-12-16T23:44:a0*02:00" , "result" : "error" } ,
{ "input" : "6463-02T09T02:11:19-14:60" , "result" : "error" } ,
{ "input" : "4328-05-16T20:36:15Z " , "result" : "error" } ,
{ "input" : "1099-08-18T00:54:42-03:00" , "nanos" : 0 , "result" : "ok" , "seconds" : -27466286718 } ,
{ "input" : "670504-23T13:34:22+23:26" , "result" : "error" } ,
{ "input" : "-001-09-20T14:22:06Z" , "result" : "error" } ,
{ "input" : " 8854-02-29T07:49:56.006071-0030" , "result" : "error" } ,
{ "input" : "8812-10-23T12:25:45-08:11" , "nanos" : 0 , "result" : "ok" , "seconds" : 215938298205 } ,
{ "input" : "7699-07-26T00:00:08.12104992077+1005" , "result" : "error" } ,
{ "input" : "4338-02-30T08:20:60.0007772Z" , "result" : "error" } ,
{ "input" : "2033-10-07T00:60:10+18:30" , "result" : "error" } ,
{ "input" : "5532-04-05T11:25:15*08:46" , "result" : "error" } ,
{ "input" : "8482-06-08T14:4:19,084000" , "result" : "error" } ,
{ "input" : "2907-04-0aT08:47:00.4Z" , "result" : "error" } ,
{ "input" : "4114-02T30T0a:33:00.6967103+14:11" , "result" : "error" } ,
{ "input" : "6099-03-21T13:15:3.347698788" , "result" : "error" } ,
{ "input" : "9258-09-10T14:59:0aZ" , "result" : "error" } ,
{ "input" : "3823-07-17T09:36:28+1030" , "result" : "error" } ,
{ "input" : "9300-04-03/18:35:56,7709050-24:00" , "result" : "error" } ,
{ "input" : "0710-01-19T10:48:1+25:61" , "result" : "error" } ,
{ "input" : "6560-04-31T25:43:07.0034-0a:60" , "result" : "error" } ,
{ "input" : "1617-02-29T04:07:20,0035777+24:00" , "result" : "error" } ,
{ "input" : "7134-09-28T19:54:15,0099889+03:00" , "nanos" : 9988900 , "result" : "ok" , "seconds" : 162983465655 } ,
{ "input" : "5182-04-06T09:05:01Z " , "result" : "error" } ,
{ "input" : "4399-05-04T08:03:7.07925824-14:00" , "result" : "error" } ,
{ "input" : "5224-12-00T03:07:12+24:13" , "result" : "error" } ,
{ "input" : "3958-08-03T12:05:47.147525-0a:00" , "result" : "error" } ,
{ "input" : "0234-10-03T09 15:15.00635550+02:33" , "result" : "error" } ,
{ "input" : "10000-05-01T05:59:55.8927Z" , "result" : "error" } ,
{ "input" : "4941-04-9T19:61:23,0278+19:00x" , "result" : "error" } ,
{ "input" : "1375-09-04T09:9:52*04:30" , "result" : "error" } ,
{ "input" : "7095-05-06T13:53:40.195+11:30" , "nanos" : 195000000 , "result" : "ok" , "seconds" : 161740203820 } ,
{ "input" : "5724--01T:-1:04.0008*01:30" , "result" : "error" } ,
{ "input" : "2538-00-13T18:35:06.015947487+00:00" , "result" : "error" } ,
{ "input" : "1556-05-17T14::30-17:23" , "result" : "error" } ,
{ "input" : "9359-01-01T00:58:50z" , "result" : "error" } ,
{ "input" : "4381-07-19T01:06:09.562770027Z" , "nanos" : 562770027 , "result" : "ok" , "seconds" : 76101037569 } ,
{ "input" : "8094-05-27T22:28:56.0329+2230x" , "result" : "error" } ,
{ "input" : "5676-11-04T02:40:37Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 116976710437 } ,
{ "input" : "2557-11-04T20:16:59,36650-03:18" , "nanos" : 366500000 , "result" : "ok" , "seconds" : 18550596899 } ,
{ "input" : "5997-02-17T21:59:47Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 127084024787 } ,
{ "input" : "9308-00-16T23:01:40-25:5" , "result" : "error" } ,
{ "input" : "0549-06-09T12:47:.00345+20:30" , "result" : "error" } ,
{ "input" : "1364-08-29T14:47:60-21:30" , "result" : "error" } ,
{ "input" : "8805-02-29T10:57:59.000349*14:20" , "result" : "error" } ,
{ "input" : "5493-02-25T06:45:43.039232508-17:36" , "nanos" : 39232508 , "result" : "ok" , "seconds" : 111180039703 } ,
{ "input" : "6581-01-27T11:42:59,009026z" , "result" : "error" } ,
{ "input" : "6035-00-19T-1:23:52.074442128" , "result" : "error" } ,
{ "input" : "5078-02-08T03:436.00158Z" , "result" : "error" } ,
{ "input" : "8730-03-07T17:59:13+07:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 213330623353 } ,
{ "input" : "1934-02-29T15:03:24-00:37" , "result" : "error" } ,
{ "input" : "0445-07-22T14:56:25.00957007853Z" , "nanos" : 9570078 , "result" : "ok" , "seconds" : -48106775015 } ,
{ "input" : "7202-02-14T07:29:20.00143Z" , "nanos" : 1430000 , "result" : "ok" , "seconds" : 165109822160 } ,
{ "input" : "4565-02-30T01:07:37z" , "result" : "error" } ,
{ "input" : "5685-12-09T18:13:51z" , "result" : "error" } ,
{ "input" : "5573-08-33T06:01:58" , "result" : "error" } ,
{ "input" : "4481/11-02T0a:33:20.022951849z" , "result" : "error" } ,
{ "input" : "1027-11-26T23:06:50,209471Z" , "nanos" : 209471000 , "result" : "ok" , "seconds" : -29729724790 } ,
{ "input" : "4442-06-123T11:26:27.0397*1730" , "result" : "error" } ,
{ "input" : "3094-08-15T23:44:12Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 35489663052 } ,
{ "input" : "1422-08-17T23:54:40.2198+23:00" , "nanos" : 219800000 , "result" : "ok" , "seconds" : -17273516720 } ,
{ "input" : "1940-07-12T12:46:32,04Z" , "nanos" : 40000000 , "result" : "ok" , "seconds" : -930050008 } ,
{ "input" : "1608-08-31T06:58:01-0039" , "result" : "error" } ,
{ "input" : "7538-03-11Ta0t52:17-07:30" , "result" : "error" } ,
{ "input" : "3885-07-13T17:0a:31.7592167-09:30" , "result" : "error" } ,
{ "input" : "1865-02-30T07:50:39,5117+05:34" , "result" : "error" } ,
{ "input" : "1543-04-08T01:36:19,001321151-00:00" , "nanos" : 1321151 , "result" : "ok" , "seconds" : -13466471021 } ,
{ "input" : "7675T04-21T04:21:49,465103z" , "result" : "error" } ,
{ "input" : "2370-06-21T21:41:18.0416877320*20:00" , "result" : "error" } ,
{ "input" : "0537-07-01T05:00:16" , "result" : "error" } ,
{ "input" : "8050/06-17T0a:29:46Z" , "result" : "error" } ,
{ "input" : "3782-12-a0T01:31:03*10:38" , "result" : "error" } ,
{ "input" : "1101-07-06T10:47:00.00461884418Z" , "nanos" : 4618844 , "result" : "ok" , "seconds" : -27406905180 } ,
{ "input" : "6472-04-9T10:23:12,0017" , "result" : "error" } ,
{ "input" : "0936-03-10T04::123,22Z " , "result" : "error" } ,
{ "input" : "9541-03-20T00:59:59,000476+08:30" , "nanos" : 476000 , "result" : "ok" , "seconds" : 238924398599 } ,
{ "input" : " 5335-03-00T18:28:54.009622295Z" , "result" : "error" } ,
{ "input" : "0037-03-15T24:32:0a.0142454z" , "result" : "error" } ,
{ "input" : "9782-05-25T05:54:31+1238" , "result" : "error" } ,
{ "input" : "0402-06-0aT1:37:19z" , "result" : "error" } ,
{ "input" : "0879-09-10T08:36:a0,00822661994Z" , "result" : "error" } ,
{ "input" : "5223-12-8T23:123:55-08:00" , "result" : "error" } ,
{ "input" : "0084t12-07T09:52:43.003-25:5" , "result" : "error" } ,
{ "input" : "7780-11-01T00:43:22,-24:00" , "result" : "error" } ,
{ "input" : "6215-12-07T00:06:05.04000099" , "result" : "error" } ,
{ "input" : "2804-10-16T13:21:26+03:39" , "nanos" : 0 , "result" : "ok" , "seconds" : 26343481346 } ,
{ "input" : "0563-03-07T14:18:35z" , "result" : "error" } ,
{ "input" : "5421-01-22Ta0:10:55z" , "result" : "error" } ,
{ "input" : "7225-03-03T16:20:18-01:00" , "nanos" : 0 , "result" : "ok" , "seconds" : 165837172818 } ,
{ "input" : "0883-02-03T18:43:0a.00833Z" , "result" : "error" } ,
{ "input" : "4024-03-27T19:25:45z" , "result" : "error" } ,
{ "input" : "9502-05-6T13:48:45z" , "result" : "error" } ,
{ "input" : "0605-05-0802:43:20.063865" , "result" : "error" } ,
{ "input" : "3322-10-00T4:50:17+1100" , "result" : "error" } ,
{ "input" : "9121-05-19T23:04:57" , "result" : "error" } ,
{ "input" : "8393-09-17T13:24:48Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 202712765088 } ,
{ "input" : "8679-12-08T05/02:59" , "result" : "error" } ,
{ "input" : "5133T01-05T10:47:a0Z" , "result" : "error" } ,
{ "input" : "1105-09-08T19-16:41-01:15 " , "result" : "error" } ,
{ "input" : "5683-11-05T17:43:60Z" , "result" : "error" } ,
{ "input" : "8618-05-02T14:31:50+15:00" , "nanos" : 0 , "result" : "ok" , "seconds" : 209801057510 } ,
{ "input" : "5334 09-24T12:0224+05:30" , "result" : "error" } ,
{ "input" : "8458-07-26T24:45:48.00416622901777+16:19" , "result" : "error" } ,
{ "input" : "7064-02-25T08:15:43.000870114" , "result" : "error" } ,
{ "input" : "5182-04-14T00:a0:39Z" , "result" : "error" } ,
{ "input" : "9034-03-09T22:43:18.68323Z" , "nanos" : 683230000 , "result" : "ok" , "seconds" : 222924177798 } ,
{ "input" : "5081-09-0aT00:56:12Z" , "result" : "error" } ,
{ "input" : "9283-02-29T13:59:22" , "result" : "error" } ,
{ "input" : "9284-12-15T15:10:11.0472886303*15:00 " , "result" : "error" } ,
{ "input" : "7912-06-a0T18:59:52Z" , "result" : "error" } ,
{ "input" : "3348T08-25T18:25:13-17:00" , "result" : "error" } ,
{ "input" : "8007-04-19T0a::53.06282-2155" , "result" : "error" } ,
{ "input" : "9271-11-13T7:01:01.002633058-1800" , "result" : "error" } ,
{ "input" : "3834-02-29T21:17:12-22:30" , "result" : "error" } ,
{ "input" : "2480-08-17T05:58:35.0064764642Z" , "nanos" : 6476464 , "result" : "ok" , "seconds" : 16113880715 } ,
{ "input" : "3870-10-11T15:34:45.001126761Z" , "nanos" : 1126761 , "result" : "ok" , "seconds" : 59982737685 } ,
{ "input" : "5326-05-27T20:1:29.0055776598-24:00" , "result" : "error" } ,
{ "input" : "5817-10-19T16:32:50+06:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 121424781770 } ,
{ "input" : "7481-03-27T20:55:23+00:02" , "nanos" : 0 , "result" : "ok" , "seconds" : 173917832003 } ,
{ "input" : "9001t04-20T10:16:26Z" , "result" : "error" } ,
{ "input" : "1239-12-25T22:54:15" , "result" : "error" } ,
{ "input" : "9485-06-18T12:32:00-0030" , "result" : "error" } ,
{ "input" : "3629-01-18T9:11:08+2100" , "result" : "error" } ,
{ "input" : "3626-02-29T17:05:07.0090+0200" , "result" : "error" } ,
{ "input" : "2593-01-23T-1:17:51,0047687Z" , "result" : "error" } ,
{ "input" : "6771-09-03T23:33:07" , "result" : "error" } ,
{ "input" : "1876-04-24T:19:27+18:00" , "result" : "error" } ,
{ "input" : "0758-07-17T12:06:01.09377" , "result" : "error" } ,
{ "input" : "8367-14-11T21:56:34Z" , "result" : "error" } ,
{ "input" : "6330-07-01T22:51:18+1652" , "result" : "error" } ,
{ "input" : "2756-09-31T1:60:47,0009371*20:00" , "result" : "error" } ,
{ "input" : "1082-9-20T04:09:46*00:30" , "result" : "error" } ,
{ "input" : "3211-08-22T05:15:36.00Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 39182332536 } ,
{ "input" : "8437-01-26T12:54:59-10:17" , "nanos" : 0 , "result" : "ok" , "seconds" : 204081117119 } ,
{ "input" : "2426-09-16T11:6:21+0903" , "result" : "error" } ,
{ "input" : "5334-1017T19:56:32.392999+0600" , "result" : "error" } ,
{ "input" : "9796-11-06T04:04:17+22:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 246991440857 } ,
{ "input" : "8377-06-02T04:39:30" , "result" : "error" } ,
{ "input" : "5930-13-04T07:11:12.7061" , "result" : "error" } ,
{ "input" : "4532-02-29T02:16:16" , "result" : "error" } ,
{ "input" : "5484-04-20T17:10:-1Z" , "result" : "error" } ,
{ "input" : "8029-01-27t08:19:05z" , "result" : "error" } ,
{ "input" : "6680-10-08T01:24:37" , "result" : "error" } ,
{ "input" : "2808-11-25T05:53:14+01:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 26473148594 } ,
{ "input" : "2328-06-08T14:42:12*0505" , "result" : "error" } ,
{ "input" : "9120-02-30T01:34:36Z" , "result" : "error" } ,
{ "input" : "7549-06-06T00:08:51,002Z" , "nanos" : 2000000 , "result" : "ok" , "seconds" : 176069722131 } ,
{ "input" : "1319-04-26T20:41:09,+12:30" , "result" : "error" } ,
{ "input" : "1370-03-06T19:02:19-14:30" , "nanos" : 0 , "result" : "ok" , "seconds" : -18928477661 } ,
{ "input" : "8083-09-24T07:18:31,62*24:61" , "result" : "error" } ,
{ "input" : "6443-02-30T14:57:01-25:5" , "result" : "error" } ,
{ "input" : " 7469-12-07T6:52:10.+00:30" , "result" : "error" } ,
{ "input" : "5268-02t18T07:21:18.0012Z" , "result" : "error" } ,
{ "input" : "6681-12-26T20:35:44.37382-06:30" , "nanos" : 373820000 , "result" : "ok" , "seconds" : 148695966344 } ,
{ "input" : "3434-04-27T0:01:31.Z" , "result" : "error" } ,
{ "input" : "9188-06-16T18:06:47-1600" , "result" : "error" } ,
{ "input" : "6388-11-13T4:13:17+18:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 139445919797 } ,
{ "input" : "4616-03-08T08:38:12*00:57" , "result" : "error" } ,
{ "input" : "3284-14-04T04:34:04+17:52" , "result" : "error" } ,
{ "input" : "9337-08-25T08:44:123.57543192-0300" , "result" : "error" } ,
{ "input" : "6237-04-03T16:0111Z" , "result" : "error" } ,
{ "input" : "5015-04-05T04:18:57.826736035Z" , "nanos" : 826736035 , "result" : "ok" , "seconds" : 96099020337 } ,
{ "input" : "1512-11-18T17:35:23z" , "result" : "error" } ,
{ "input" : "3781-03-02T15:27:59,047277+04:00" , "nanos" : 47277000 , "result" : "ok" , "seconds" : 57154937279 } ,
{ "input" : "0814-08t27T14:42:47.004" , "result" : "error" } ,
{ "input" : "9518-10-16T09:00:43.5222-11:00" , "nanos" : 522200000 , "result" : "ok" , "seconds" : 238216795243 } ,
{ "input" : "3872-05-06T02:59:3+13:00" , "result" : "error" } ,
{ "input" : "3215-11-11T12:04:" , "result" : "error" } ,
{ "input" : "20a3-00-01T01:03:31.36973-2230" , "result" : "error" } ,
{ "input" : "8351-07-21T13:46:43Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 201382292803 } ,
{ "input" : "10000-05-10T19:52:02*14:30" , "result" : "error" } ,
{ "input" : "-001-10-07T13:55:19*0a:00" , "result" : "error" } ,
{ "input" : "3639-09-28T01:123:31z " , "result" : "error" } ,
{ "input" : "3122-10-13T18:44:02.006988-10:00" , "nanos" : 6988000 , "result" : "ok" , "seconds" : 36378305042 } ,
{ "input" : "4767-11-00T05:43:37-19:00" , "result" : "error" } ,
{ "input" : "3248-03-03T23:14:42.+03:46" , "result" : "error" } ,
{ "input" : "4418-10-24T23:25:22,0037002915+1200" , "result" : "error" } ,
{ "input" : "8334-02-3T09:03:6-0a:00" , "result" : "error" } ,
{ "input" : "8974-02-22T01:08:31,00965*22:36" , "result" : "error" } ,
{ "input" : "1932-05-05T10:36:49,0123237366*09:30" , "result" : "error" } ,
{ "input" : "4765-10-24T16:36:43,20010785+13:40" , "nanos" : 200107850 , "result" : "ok" , "seconds" : 88227284203 } ,
{ "input" : "7845-07-22T11:52:24,0039*0800" , "result" : "error" } ,
{ "input" : "0129-05-22T12:45:23,00959Z" , "nanos" : 9590000 , "result" : "ok" , "seconds" : -58084082077 } ,
{ "input" : "4266-06-25T22:32:14+00:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 72469980134 } ,
{ "input" : "0787-06-08T05:24:35,0006927Z" , "nanos" : 692700 , "result" : "ok" , "seconds" : -37318214125 } ,
{ "input" : "6009-09-12T15:13:02,00048+13:00" , "nanos" : 480000 , "result" : "ok" , "seconds" : 127480529582 } ,
{ "input" : "8349-01-04T02:5:53.003027Z" , "result" : "error" } ,
{ "input" : "9999-07-03T05:02:60+0a:61" , "result" : "error" } ,
{ "input" : "4061-02-29T15:34T48,0597" , "result" : "error" } ,
{ "input" : "4123-03-13T11:22:60-12:30" , "result" : "error" } ,
{ "input" : "6098-06-23T00:54:01,8*05:27" , "result" : "error" } ,
{ "input" : " 2065-10-06T2:07:46,00572335897*0428" , "result" : "error" } ,
{ "input" : "6625-12-27T6:08:42Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 146928751722 } ,
{ "input" : "9627-03-11T13:00:28,819022022" , "result" : "error" } ,
{ "input" : "0520-02-24T2:12:04,0847753493*06:00" , "result" : "error" } ,
{ "input" : "5839-10-24T21:13:55.7+23:00" , "nanos" : 700000000 , "result" : "ok" , "seconds" : 122119395235 } ,
{ "input" : "6688-06-19T23:01:03.0022+20:33" , "nanos" : 2200000 , "result" : "ok" , "seconds" : 148900386483 } ,
{ "input" : "8533-09-09T25:36:12.08558z" , "result" : "error" } ,
{ "input" : "3968-05-24T14:44:a0z" , "result" : "error" } ,
{ "input" : "7680-12-33T10:10:09z" , "result" : "error" } ,
{ "input" : "7765-01-03T03:51:45,00964388Z" , "nanos" : 9643880 , "result" : "ok" , "seconds" : 182872785105 } ,
{ "input" : "4808-05-27T20:42:57.36122" , "result" : "error" } ,
{ "input" : "7872-09-13T08:33:41.0018009426Z" , "nanos" : 1800942 , "result" : "ok" , "seconds" : 186271259621 } ,
{ "input" : "4471-10-02T12:50:49.7833Z" , "nanos" : 783300000 , "result" : "ok" , "seconds" : 78947700649 } ,
{ "input" : "0382-04-17T07:49:30Z" , "nanos" : 0 , "result" : "ok" , "seconds" : -50103245430 } ,
{ "input" : "1173-10-26T22:16:22+2130" , "result" : "error" } ,
{ "input" : "5672-11-15T10:53:48z" , "result" : "error" } ,
{ "input" : "0000-02-30T19:01:26.8143942+05:30" , "result" : "error" } ,
{ "input" : "1141-10-09T22:23:30" , "result" : "error" } ,
{ "input" : "3537-02-29T15:23:50.005792059777+12:30 " , "result" : "error" } ,
{ "input" : "7025-09-10T-1:41:39.87z" , "result" : "error" } ,
{ "input" : "7800-04-16T11:123:11.022Z" , "result" : "error" } ,
{ "input" : "0073-09-21T08:21:00.003415947z" , "result" : "error" } ,
{ "input" : "2255-00-04 21:29:51*10:00" , "result" : "error" } ,
{ "input" : "7313-9-06T06:06:26,0581-24:00" , "result" : "error" } ,
{ "input" : "0587-00-11T08T20:23.0078Z" , "result" : "error" } ,
{ "input" : "4176-07-25T10:45:27,007677-14:30" , "nanos" : 7677000 , "result" : "ok" , "seconds" : 69632529327 } ,
{ "input" : "6376-04-04T23:30:45+04:30" , "nanos" : 0 , "result" : "ok" , "seconds" : 139048081245 } ,
{ "input" : "1684-01-25T03:08:44Z" , "nanos" : 0 , "result" : "ok" , "seconds" : -9023172676 } ,
{ "input" : "9196-05-01T25:43:58+0200" , "result" : "error" } ,
{ "input" : "0163-11-09T21:56:53*11:30" , "result" : "error" } ,
{ "input" : "4183-11-02T06:20:48,04601+22:33" , "nanos" : 46010000 , "result" : "ok" , "seconds" : 69861858468 } ,
{ "input" : "9647-08-14T15:49:03*12:30" , "result" : "error" } ,
{ "input" : "6425-02-12T18:45:0a,013255+04:00" , "result" : "error" } ,
{ "input" : "8777-02-30T02:51:13+00:26" , "result" : "error" } ,
{ "input" : "9577-11-21T01:46:36.013289Z" , "nanos" : 13289000 , "result" : "ok" , "seconds" : 240081759996 } ,
{ "input" : "1050-04-13T22:18:01,7417Z" , "nanos" : 741700000 , "result" : "ok" , "seconds" : -29023494119 } ,
{ "input" : "5297-05-11T16:33:51." , "result" : "error" } ,
{ "input" : "7923-03-14T09:32:39.7637+14:30" , "nanos" : 763700000 , "result" : "ok" , "seconds" : 187864686159 } ,
{ "input" : "2665 04-13T05:48:23z" , "result" : "error" } ,
{ "input" : "4247-06--1T13:28:44,0028877987+0a:00" , "result" : "error" } ,
{ "input" : "5501-10-23T00:61:60Z" , "result" : "error" } ,
{ "input" : "8946-02-30T06:27:30,4z " , "result" : "error" } ,
{ "input" : "6566-03-27T04:20:05,009616*11:24" , "result" : "error" } ,
{ "input" : "8803-06-15T11:13:10.00Z" , "nanos" : 0 , "result" : "ok" , "seconds" : 215642949190 } ,
{ "input" : "1330-10-09T22:46:43.112233zx" , "result" : "error" } ,
{ "input" : "0801-11-22T00:11:0+14:00" , "result" : "error" } ,
{ "input" : "4687-08-00T01:18:48.02230589*1200" , "result" : "error" } ,
{ "input" : "6264-11-02T21:54:22.01489047+22:19" , "nanos" : 14890470 , "result" : "ok" , "seconds" : 135531963322 } ,
{ "input" : "9736-04-21T21:03:9.4" , "result" : "error" } ,
{ "input" : "9634-09-22T02:07:52.49590895Z" , "nanos" : 495908950 , "result" : "ok" , "seconds" : 241875338872 } ,
{ "input" : "2053-11-17T09:-1:58.x+1330" , "result" : "error" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "input" : "2701T01-03T18:15:31.0002+1:61" , "result" : "error" } ,
{ "input" : "9520-8-01T22:36:05.002413979" , "result" : "error" } ,
{ "input" : "1226-04-33T24:01:50,08767832-01:00" , "result" : "error" } ,
{ "input" : "8049-10-26T08:44:.00819562921+1538" , "result" : "error" }
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
] ,
"format" : [
{ "nanos" : 500000000 , "rfc3339" : "10000-01-01T04:39:54Z" , "rfc3339nano" : "10000-01-01T04:39:54.5Z" , "seconds" : 253402317594 } ,
{ "nanos" : 1 , "rfc3339" : "-0001-12-31T01:50:17Z" , "rfc3339nano" : "-0001-12-31T01:50:17.000000001Z" , "seconds" : -62167298983 } ,
{ "nanos" : 0 , "rfc3339" : "7695-06-06T16:00:45Z" , "rfc3339nano" : "7695-06-06T16:00:45Z" , "seconds" : 180677145645 } ,
{ "nanos" : 0 , "rfc3339" : "2674-04-08T17:00:48Z" , "rfc3339nano" : "2674-04-08T17:00:48Z" , "seconds" : 22224560448 } ,
{ "nanos" : 0 , "rfc3339" : "0698-04-13T11:37:03Z" , "rfc3339nano" : "0698-04-13T11:37:03Z" , "seconds" : -40131548577 } ,
{ "nanos" : 590513573 , "rfc3339" : "1970-01-01T15:19:43Z" , "rfc3339nano" : "1970-01-01T15:19:43.590513573Z" , "seconds" : 55183 } ,
{ "nanos" : 0 , "rfc3339" : "5278-03-06T14:40:15Z" , "rfc3339nano" : "5278-03-06T14:40:15Z" , "seconds" : 104396049615 } ,
{ "nanos" : 0 , "rfc3339" : "2672-02-09T06:04:56Z" , "rfc3339nano" : "2672-02-09T06:04:56Z" , "seconds" : 22156351496 } ,
{ "nanos" : 0 , "rfc3339" : "2000-02-29T17:28:45Z" , "rfc3339nano" : "2000-02-29T17:28:45Z" , "seconds" : 951845325 } ,
{ "nanos" : 1 , "rfc3339" : "2000-02-29T06:51:56Z" , "rfc3339nano" : "2000-02-29T06:51:56.000000001Z" , "seconds" : 951807116 } ,
{ "nanos" : 999999999 , "rfc3339" : "5851-09-16T14:23:14Z" , "rfc3339nano" : "5851-09-16T14:23:14.999999999Z" , "seconds" : 122494861394 } ,
{ "nanos" : 1 , "rfc3339" : "2000-02-29T10:53:52Z" , "rfc3339nano" : "2000-02-29T10:53:52.000000001Z" , "seconds" : 951821632 } ,
{ "nanos" : 437251617 , "rfc3339" : "-0001-12-31T14:50:49Z" , "rfc3339nano" : "-0001-12-31T14:50:49.437251617Z" , "seconds" : -62167252151 } ,
{ "nanos" : 500000000 , "rfc3339" : "7119-06-27T17:59:55Z" , "rfc3339nano" : "7119-06-27T17:59:55.5Z" , "seconds" : 162502048795 } ,
{ "nanos" : 0 , "rfc3339" : "-0001-12-30T16:32:11Z" , "rfc3339nano" : "-0001-12-30T16:32:11Z" , "seconds" : -62167332469 } ,
{ "nanos" : 500000000 , "rfc3339" : "-10000-12-31T02:05:01Z" , "rfc3339nano" : "-10000-12-31T02:05:01.5Z" , "seconds" : -377705195699 } ,
{ "nanos" : 1 , "rfc3339" : "2000-02-28T02:11:30Z" , "rfc3339nano" : "2000-02-28T02:11:30.000000001Z" , "seconds" : 951703890 } ,
{ "nanos" : 725292869 , "rfc3339" : "1970-01-01T06:52:32Z" , "rfc3339nano" : "1970-01-01T06:52:32.725292869Z" , "seconds" : 24752 } ,
{ "nanos" : 999999999 , "rfc3339" : "2000-02-28T20:47:57Z" , "rfc3339nano" : "2000-02-28T20:47:57.999999999Z" , "seconds" : 951770877 } ,
{ "nanos" : 0 , "rfc3339" : "-0001-12-30T20:51:20Z" , "rfc3339nano" : "-0001-12-30T20:51:20Z" , "seconds" : -62167316920 } ,
{ "nanos" : 500000000 , "rfc3339" : "4836-11-19T13:52:33Z" , "rfc3339nano" : "4836-11-19T13:52:33.5Z" , "seconds" : 90470181153 } ,
{ "nanos" : 592404347 , "rfc3339" : "9641-04-05T11:40:48Z" , "rfc3339nano" : "9641-04-05T11:40:48.592404347Z" , "seconds" : 242081610048 } ,
{ "nanos" : 0 , "rfc3339" : "-0001-12-31T03:45:30Z" , "rfc3339nano" : "-0001-12-31T03:45:30Z" , "seconds" : -62167292070 } ,
{ "nanos" : 0 , "rfc3339" : "-0001-12-31T10:37:04Z" , "rfc3339nano" : "-0001-12-31T10:37:04Z" , "seconds" : -62167267376 } ,
{ "nanos" : 0 , "rfc3339" : "2000-03-01T01:27:46Z" , "rfc3339nano" : "2000-03-01T01:27:46Z" , "seconds" : 951874066 } ,
{ "nanos" : 1 , "rfc3339" : "-10000-12-30T20:23:01Z" , "rfc3339nano" : "-10000-12-30T20:23:01.000000001Z" , "seconds" : -377705216219 } ,
{ "nanos" : 999999999 , "rfc3339" : "10000-12-31T12:48:10Z" , "rfc3339nano" : "10000-12-31T12:48:10.999999999Z" , "seconds" : 253433882890 } ,
{ "nanos" : 500000000 , "rfc3339" : "0681-05-01T21:44:33Z" , "rfc3339nano" : "0681-05-01T21:44:33.5Z" , "seconds" : -40666414527 } ,
{ "nanos" : 542951385 , "rfc3339" : "-9999-01-01T07:09:25Z" , "rfc3339nano" : "-9999-01-01T07:09:25.542951385Z" , "seconds" : -377705091035 } ,
{ "nanos" : 841431611 , "rfc3339" : "2000-02-28T10:57:20Z" , "rfc3339nano" : "2000-02-28T10:57:20.841431611Z" , "seconds" : 951735440 } ,
{ "nanos" : 999999999 , "rfc3339" : "6363-03-04T19:45:03Z" , "rfc3339nano" : "6363-03-04T19:45:03.999999999Z" , "seconds" : 138635091903 } ,
{ "nanos" : 999999999 , "rfc3339" : "8788-05-20T05:32:48Z" , "rfc3339nano" : "8788-05-20T05:32:48.999999999Z" , "seconds" : 215167383168 } ,
{ "nanos" : 0 , "rfc3339" : "-1062-10-11T01:18:01Z" , "rfc3339nano" : "-1062-10-11T01:18:01Z" , "seconds" : -95656200119 } ,
{ "nanos" : 0 , "rfc3339" : "9999-12-31T19:58:30Z" , "rfc3339nano" : "9999-12-31T19:58:30Z" , "seconds" : 253402286310 } ,
{ "nanos" : 0 , "rfc3339" : "2000-02-29T04:26:57Z" , "rfc3339nano" : "2000-02-29T04:26:57Z" , "seconds" : 951798417 } ,
{ "nanos" : 14818830 , "rfc3339" : "0980-01-07T20:56:02Z" , "rfc3339nano" : "0980-01-07T20:56:02.01481883Z" , "seconds" : -31240782238 } ,
{ "nanos" : 807761504 , "rfc3339" : "-0623-08-20T05:12:34Z" , "rfc3339nano" : "-0623-08-20T05:12:34.807761504Z" , "seconds" : -81807130046 } ,
{ "nanos" : 0 , "rfc3339" : "4509-11-18T01:10:59Z" , "rfc3339nano" : "4509-11-18T01:10:59Z" , "seconds" : 80150865059 } ,
{ "nanos" : 0 , "rfc3339" : "0960-03-03T11:43:56Z" , "rfc3339nano" : "0960-03-03T11:43:56Z" , "seconds" : -31867128964 } ,
{ "nanos" : 999999999 , "rfc3339" : "3961-01-21T07:17:02Z" , "rfc3339nano" : "3961-01-21T07:17:02.999999999Z" , "seconds" : 62831661422 } ,
{ "nanos" : 0 , "rfc3339" : "-0632-01-05T21:07:14Z" , "rfc3339nano" : "-0632-01-05T21:07:14Z" , "seconds" : -82110768766 } ,
{ "nanos" : 0 , "rfc3339" : "2636-04-13T18:54:48Z" , "rfc3339nano" : "2636-04-13T18:54:48Z" , "seconds" : 21025853688 } ,
{ "nanos" : 880598363 , "rfc3339" : "1969-12-31T07:05:30Z" , "rfc3339nano" : "1969-12-31T07:05:30.880598363Z" , "seconds" : -60870 } ,
{ "nanos" : 1 , "rfc3339" : "-1937-01-25T13:18:55Z" , "rfc3339nano" : "-1937-01-25T13:18:55.000000001Z" , "seconds" : -123290851265 } ,
{ "nanos" : 538539418 , "rfc3339" : "5048-07-11T00:19:24Z" , "rfc3339nano" : "5048-07-11T00:19:24.538539418Z" , "seconds" : 97148852364 } ,
{ "nanos" : 0 , "rfc3339" : "4916-05-24T08:09:40Z" , "rfc3339nano" : "4916-05-24T08:09:40Z" , "seconds" : 92979216580 } ,
{ "nanos" : 0 , "rfc3339" : "-0001-12-30T13:00:11Z" , "rfc3339nano" : "-0001-12-30T13:00:11Z" , "seconds" : -62167345189 } ,
{ "nanos" : 500000000 , "rfc3339" : "5444-02-26T13:07:16Z" , "rfc3339nano" : "5444-02-26T13:07:16.5Z" , "seconds" : 109633698436 } ,
{ "nanos" : 213339078 , "rfc3339" : "0000-01-01T15:53:34Z" , "rfc3339nano" : "0000-01-01T15:53:34.213339078Z" , "seconds" : -62167161986 } ,
{ "nanos" : 999999999 , "rfc3339" : "3602-09-07T11:25:55Z" , "rfc3339nano" : "3602-09-07T11:25:55.999999999Z" , "seconds" : 51522521155 } ,
{ "nanos" : 500000000 , "rfc3339" : "10001-01-01T22:57:55Z" , "rfc3339nano" : "10001-01-01T22:57:55.5Z" , "seconds" : 253434005875 } ,
{ "nanos" : 500000000 , "rfc3339" : "10000-01-01T20:14:16Z" , "rfc3339nano" : "10000-01-01T20:14:16.5Z" , "seconds" : 253402373656 } ,
{ "nanos" : 0 , "rfc3339" : "0881-03-18T22:39:12Z" , "rfc3339nano" : "0881-03-18T22:39:12Z" , "seconds" : -34358779248 } ,
{ "nanos" : 0 , "rfc3339" : "5013-11-26T22:11:38Z" , "rfc3339nano" : "5013-11-26T22:11:38Z" , "seconds" : 96056316698 } ,
{ "nanos" : 0 , "rfc3339" : "-1170-01-10T17:54:59Z" , "rfc3339nano" : "-1170-01-10T17:54:59Z" , "seconds" : -99087948301 } ,
{ "nanos" : 1 , "rfc3339" : "-9999-01-01T14:11:52Z" , "rfc3339nano" : "-9999-01-01T14:11:52.000000001Z" , "seconds" : -377705065688 } ,
{ "nanos" : 500000000 , "rfc3339" : "6742-06-03T23:04:39Z" , "rfc3339nano" : "6742-06-03T23:04:39.5Z" , "seconds" : 150603059079 } ,
{ "nanos" : 1 , "rfc3339" : "-0001-12-29T21:24:20Z" , "rfc3339nano" : "-0001-12-29T21:24:20.000000001Z" , "seconds" : -62167401340 } ,
{ "nanos" : 1 , "rfc3339" : "1969-12-31T17:23:36Z" , "rfc3339nano" : "1969-12-31T17:23:36.000000001Z" , "seconds" : -23784 } ,
{ "nanos" : 999999999 , "rfc3339" : "1969-12-31T02:35:29Z" , "rfc3339nano" : "1969-12-31T02:35:29.999999999Z" , "seconds" : -77071 } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "nanos" : 682128961 , "rfc3339" : "1970-01-02T00:00:31Z" , "rfc3339nano" : "1970-01-02T00:00:31.682128961Z" , "seconds" : 86431 } ,
{ "nanos" : 999999999 , "rfc3339" : "8221-06-15T04:31:50Z" , "rfc3339nano" : "8221-06-15T04:31:50.999999999Z" , "seconds" : 197276790710 } ,
{ "nanos" : 1 , "rfc3339" : "-0001-12-30T13:21:06Z" , "rfc3339nano" : "-0001-12-30T13:21:06.000000001Z" , "seconds" : -62167343934 } ,
{ "nanos" : 0 , "rfc3339" : "-0001-12-31T13:00:39Z" , "rfc3339nano" : "-0001-12-31T13:00:39Z" , "seconds" : -62167258761 } ,
{ "nanos" : 999999999 , "rfc3339" : "-0192-08-14T07:54:59Z" , "rfc3339nano" : "-0192-08-14T07:54:59.999999999Z" , "seconds" : -68206637101 } ,
{ "nanos" : 0 , "rfc3339" : "9047-11-10T17:11:34Z" , "rfc3339nano" : "9047-11-10T17:11:34Z" , "seconds" : 223355639494 } ,
{ "nanos" : 500000000 , "rfc3339" : "3349-04-22T22:54:20Z" , "rfc3339nano" : "3349-04-22T22:54:20.5Z" , "seconds" : 43526760860 } ,
{ "nanos" : 0 , "rfc3339" : "0000-01-01T06:02:58Z" , "rfc3339nano" : "0000-01-01T06:02:58Z" , "seconds" : -62167197422 } ,
{ "nanos" : 0 , "rfc3339" : "-1730-04-26T00:07:06Z" , "rfc3339nano" : "-1730-04-26T00:07:06Z" , "seconds" : -116750764374 } ,
{ "nanos" : 804819735 , "rfc3339" : "2537-09-28T18:21:59Z" , "rfc3339nano" : "2537-09-28T18:21:59.804819735Z" , "seconds" : 17916229319 } ,
{ "nanos" : 500000000 , "rfc3339" : "-0001-12-30T02:34:46Z" , "rfc3339nano" : "-0001-12-30T02:34:46.5Z" , "seconds" : -62167382714 } ,
{ "nanos" : 0 , "rfc3339" : "9999-12-31T17:52:04Z" , "rfc3339nano" : "9999-12-31T17:52:04Z" , "seconds" : 253402278724 } ,
{ "nanos" : 0 , "rfc3339" : "8101-02-15T07:17:54Z" , "rfc3339nano" : "8101-02-15T07:17:54Z" , "seconds" : 193479607074 } ,
{ "nanos" : 0 , "rfc3339" : "-1779-03-19T07:50:31Z" , "rfc3339nano" : "-1779-03-19T07:50:31Z" , "seconds" : -118300320569 } ,
{ "nanos" : 999999999 , "rfc3339" : "-9999-01-02T03:05:02Z" , "rfc3339nano" : "-9999-01-02T03:05:02.999999999Z" , "seconds" : -377705019298 } ,
{ "nanos" : 1 , "rfc3339" : "10000-12-31T00:23:34Z" , "rfc3339nano" : "10000-12-31T00:23:34.000000001Z" , "seconds" : 253433838214 } ,
{ "nanos" : 1 , "rfc3339" : "-0001-12-30T22:39:57Z" , "rfc3339nano" : "-0001-12-30T22:39:57.000000001Z" , "seconds" : -62167310403 } ,
{ "nanos" : 999999999 , "rfc3339" : "-0001-12-31T03:59:20Z" , "rfc3339nano" : "-0001-12-31T03:59:20.999999999Z" , "seconds" : -62167291240 } ,
{ "nanos" : 0 , "rfc3339" : "-10000-12-31T15:27:59Z" , "rfc3339nano" : "-10000-12-31T15:27:59Z" , "seconds" : -377705147521 } ,
{ "nanos" : 500000000 , "rfc3339" : "1969-12-31T19:01:24Z" , "rfc3339nano" : "1969-12-31T19:01:24.5Z" , "seconds" : -17916 }
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
] ,
"resolve" : [
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 12072455938 , "round_time" : 37910171178 , "seconds" : 37910171177 } ,
{ "genesis_time" : 1692803367 , "nanos" : 355874802 , "period" : 3 , "result" : "ok" , "round" : 83894030283 , "round_time" : 253374894213 , "seconds" : 253374894210 } ,
{ "genesis_time" : 1692803367 , "nanos" : 544208535 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 1692803364 , "text" : "datekey: 2023-08-23T15:09:24.544208535Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 817617647 , "period" : 3 , "result" : "ok" , "round" : 66527747769 , "round_time" : 201276046671 , "seconds" : 201276046669 } ,
{ "genesis_time" : 1692803367 , "nanos" : 579274744 , "period" : 3 , "result" : "ok" , "round" : 63664781322 , "round_time" : 192687147330 , "seconds" : 192687147327 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 78548286311 , "round_time" : 237337662297 , "seconds" : 237337662295 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 39397390993 , "round_time" : 119884976343 , "seconds" : 119884976343 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 41983351456 , "round_time" : 127642857732 , "seconds" : 127642857731 } ,
{ "genesis_time" : 1692803367 , "nanos" : 832373479 , "period" : 3 , "result" : "ok" , "round" : 75502046355 , "round_time" : 228198942429 , "seconds" : 228198942428 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 7876282436 , "round_time" : 25321650672 , "seconds" : 25321650671 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300801 , "text" : "datekey: 10000-01-01T00:00:01Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 1692803363 , "text" : "datekey: 2023-08-23T15:09:23Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 719317524 , "period" : 3 , "result" : "ok" , "round" : 20144189590 , "round_time" : 62125372134 , "seconds" : 62125372131 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 1 , "round_time" : 1692803367 , "seconds" : 1692803367 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 42753820148 , "round_time" : 129954263808 , "seconds" : 129954263806 } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -35273569008 , "text" : "datekey: 0852-03-23T02:23:12Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 535712649 , "period" : 3 , "result" : "ok" , "round" : 83903165811 , "round_time" : 253402300797 , "seconds" : 253402300795 } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 3 , "result" : "ok" , "round" : 26447823077 , "round_time" : 81036272595 , "seconds" : 81036272592 } ,
{ "genesis_time" : 1692803367 , "nanos" : 169080390 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -3731952423 , "text" : "datekey: 1851-09-28T02:32:57.16908039Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 882141510 , "period" : 3 , "result" : "ok" , "round" : 65380485614 , "round_time" : 197834260206 , "seconds" : 197834260203 } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 370726971121 , "text" : "datekey: 13717-11-14T10:12:01.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 3 , "result" : "ok" , "round" : 45496386026 , "round_time" : 138181961442 , "seconds" : 138181961440 } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 3 , "result" : "ok" , "round" : 78603290554 , "round_time" : 237502675026 , "seconds" : 237502675023 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 5 , "round_time" : 1692803379 , "seconds" : 1692803377 } ,
{ "genesis_time" : 1692803367 , "nanos" : 415577192 , "period" : 3 , "result" : "ok" , "round" : 3 , "round_time" : 1692803373 , "seconds" : 1692803370 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300809 , "text" : "datekey: 10000-01-01T00:00:09Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 277245293 , "period" : 3 , "result" : "ok" , "round" : 7486986569 , "round_time" : 24153763071 , "seconds" : 24153763069 } ,
{ "genesis_time" : 1692803367 , "nanos" : 474086825 , "period" : 3 , "result" : "ok" , "round" : 42343659974 , "round_time" : 128723783286 , "seconds" : 128723783283 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -78542304889 , "text" : "datekey: -0519-02-03T13:05:11Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 72162154451 , "round_time" : 218179266717 , "seconds" : 218179266716 } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 3 , "result" : "ok" , "round" : 72583581535 , "round_time" : 219443547969 , "seconds" : 219443547966 } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 3 , "result" : "ok" , "round" : 24521700197 , "round_time" : 75257903955 , "seconds" : 75257903952 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 72607751390 , "round_time" : 219516057534 , "seconds" : 219516057534 } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 1692803357 , "text" : "datekey: 2023-08-23T15:09:17.000000001Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ok" , "round" : 69224224894 , "round_time" : 209365478046 , "seconds" : 209365478046 } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300804 , "text" : "datekey: 10000-01-01T00:00:04.000000001Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 3 , "result" : "ok" , "round" : 63409740632 , "round_time" : 191922025260 , "seconds" : 191922025259 } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 83903165812 outside 1..83903165811 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 287471722864 , "text" : "datekey: 11079-08-14T00:21:04.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300807 , "text" : "datekey: 10000-01-01T00:00:07Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 999999999 , "period" : 30 , "result" : "ok" , "round" : 3306791871 , "round_time" : 100799187150 , "seconds" : 100799187127 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 1595431045 , "text" : "datekey: 2020-07-22T15:17:25Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 7796113860 , "round_time" : 235478846820 , "seconds" : 235478846809 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300802 , "text" : "datekey: 10000-01-01T00:00:02Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 151080615 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 1595431043 , "text" : "datekey: 2020-07-22T15:17:23.151080615Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 999999999 , "period" : 30 , "result" : "ok" , "round" : 2 , "round_time" : 1595431080 , "seconds" : 1595431051 } ,
{ "genesis_time" : 1595431050 , "nanos" : 999999999 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300791 , "text" : "datekey: round 8393562326 outside 1..8393562325 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 999999999 , "period" : 30 , "result" : "ok" , "round" : 6408501400 , "round_time" : 193850473020 , "seconds" : 193850472990 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 2 , "round_time" : 1595431080 , "seconds" : 1595431056 } ,
{ "genesis_time" : 1595431050 , "nanos" : 999999999 , "period" : 30 , "result" : "ok" , "round" : 6636181302 , "round_time" : 200680870080 , "seconds" : 200680870063 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 1926291585 , "round_time" : 59384178570 , "seconds" : 59384178541 } ,
{ "genesis_time" : 1595431050 , "nanos" : 745694335 , "period" : 30 , "result" : "ok" , "round" : 7240425187 , "round_time" : 218808186630 , "seconds" : 218808186613 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 6338360185 , "round_time" : 191746236570 , "seconds" : 191746236554 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 6485292795 , "round_time" : 196154214870 , "seconds" : 196154214869 } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 2417017433 , "round_time" : 74105954010 , "seconds" : 74105954009 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 4582026569 , "round_time" : 139056228090 , "seconds" : 139056228074 } ,
{ "genesis_time" : 1595431050 , "nanos" : 282971883 , "period" : 30 , "result" : "ok" , "round" : 8252423791 , "round_time" : 249168144750 , "seconds" : 249168144720 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300805 , "text" : "datekey: 10000-01-01T00:00:05Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 1 , "period" : 30 , "result" : "ok" , "round" : 3227763806 , "round_time" : 98428345200 , "seconds" : 98428345173 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 6185686534 , "round_time" : 187166027040 , "seconds" : 187166027011 } ,
{ "genesis_time" : 1595431050 , "nanos" : 488186176 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300809 , "text" : "datekey: 10000-01-01T00:00:09.488186176Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300798 , "text" : "datekey: round 8393562326 outside 1..8393562325 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 2223195160 , "round_time" : 68291285820 , "seconds" : 68291285813 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 1 , "round_time" : 1595431050 , "seconds" : 1595431050 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300804 , "text" : "datekey: 10000-01-01T00:00:04Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 1595431045 , "text" : "datekey: 2020-07-22T15:17:25Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 999999999 , "period" : 30 , "result" : "ok" , "round" : 1352478131 , "round_time" : 42169774950 , "seconds" : 42169774921 } ,
{ "genesis_time" : 1595431050 , "nanos" : 999999999 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 2 , "round_time" : 1595431080 , "seconds" : 1595431055 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300804 , "text" : "datekey: 10000-01-01T00:00:04Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 999999999 , "period" : 30 , "result" : "ok" , "round" : 419643337 , "round_time" : 14184731130 , "seconds" : 14184731109 } ,
{ "genesis_time" : 1595431050 , "nanos" : 999999999 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 1595431041 , "text" : "datekey: 2020-07-22T15:17:21.999999999Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 624312591 , "period" : 30 , "result" : "ok" , "round" : 7282852396 , "round_time" : 220081002900 , "seconds" : 220081002877 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300791 , "text" : "datekey: round 8393562326 outside 1..8393562325 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 5838676395 , "round_time" : 176755722870 , "seconds" : 176755722865 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 4995512695 , "round_time" : 151460811870 , "seconds" : 151460811870 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ok" , "round" : 7907921559 , "round_time" : 238833077790 , "seconds" : 238833077781 } ,
{ "genesis_time" : 1595431050 , "nanos" : 999999999 , "period" : 30 , "result" : "ok" , "round" : 467442028 , "round_time" : 15618691860 , "seconds" : 15618691850 } ,
{ "genesis_time" : 1595431050 , "nanos" : 0 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 1595431049 , "text" : "datekey: 2020-07-22T15:17:29Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 0 , "text" : "datekey: 1970-01-01T00:00:00.999999999Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300806 , "text" : "datekey: 10000-01-01T00:00:06.000000001Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 318610025713 , "text" : "datekey: 12066-05-08T00:55:13.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300806 , "text" : "datekey: 10000-01-01T00:00:06Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 168331558126 , "round_time" : 168331558126 , "seconds" : 168331558126 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 324850510496 , "text" : "datekey: 12264-02-07T20:54:56Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300802 , "text" : "datekey: 10000-01-01T00:00:02.000000001Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 250292261304 , "round_time" : 250292261304 , "seconds" : 250292261304 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 24212443211 , "round_time" : 24212443211 , "seconds" : 24212443211 } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 1 , "result" : "ok" , "round" : 179588676334 , "round_time" : 179588676334 , "seconds" : 179588676333 } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 1 , "result" : "ok" , "round" : 51431910739 , "round_time" : 51431910739 , "seconds" : 51431910738 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 249615643697 , "round_time" : 249615643697 , "seconds" : 249615643697 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 162582817464 , "round_time" : 162582817464 , "seconds" : 162582817464 } ,
{ "genesis_time" : 1 , "nanos" : 95189237 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300809 , "text" : "datekey: 10000-01-01T00:00:09.095189237Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 1 , "result" : "ok" , "round" : 253402300796 , "round_time" : 253402300796 , "seconds" : 253402300795 } ,
{ "genesis_time" : 1 , "nanos" : 960467018 , "period" : 1 , "result" : "ok" , "round" : 123252667057 , "round_time" : 123252667057 , "seconds" : 123252667056 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 97251509867 , "round_time" : 97251509867 , "seconds" : 97251509867 } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 1 , "result" : "ok" , "round" : 196172685548 , "round_time" : 196172685548 , "seconds" : 196172685547 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -23153260877 , "text" : "datekey: 1236-04-20T10:38:43Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 249563857 , "period" : 1 , "result" : "ok" , "round" : 11 , "round_time" : 11 , "seconds" : 10 } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 1 , "result" : "ok" , "round" : 17294227117 , "round_time" : 17294227117 , "seconds" : 17294227116 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 227384708001 , "round_time" : 227384708001 , "seconds" : 227384708001 } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 1 , "result" : "ok" , "round" : 160573013053 , "round_time" : 160573013053 , "seconds" : 160573013052 } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 1 , "result" : "ok" , "round" : 50961524133 , "round_time" : 50961524133 , "seconds" : 50961524132 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 120579090047 , "round_time" : 120579090047 , "seconds" : 120579090047 } ,
{ "genesis_time" : 1 , "nanos" : 843792198 , "period" : 1 , "result" : "ok" , "round" : 52652331549 , "round_time" : 52652331549 , "seconds" : 52652331548 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 97306091573 , "round_time" : 97306091573 , "seconds" : 97306091573 } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 1 , "result" : "ok" , "round" : 139121299286 , "round_time" : 139121299286 , "seconds" : 139121299285 } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300809 , "text" : "datekey: 10000-01-01T00:00:09.000000001Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 253402300799 , "round_time" : 253402300799 , "seconds" : 253402300799 } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 1 , "result" : "ok" , "round" : 241599678498 , "round_time" : 241599678498 , "seconds" : 241599678497 } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 1 , "result" : "ok" , "round" : 250413213997 , "round_time" : 250413213997 , "seconds" : 250413213996 } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 1 , "result" : "ok" , "round" : 224089682440 , "round_time" : 224089682440 , "seconds" : 224089682439 } ,
{ "genesis_time" : 1 , "nanos" : 337985932 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -4517062458 , "text" : "datekey: 1826-11-11T04:25:42.337985932Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 788619217 , "period" : 1 , "result" : "ok" , "round" : 137777903888 , "round_time" : 137777903888 , "seconds" : 137777903887 } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 1 , "result" : "ok" , "round" : 18942904485 , "round_time" : 18942904485 , "seconds" : 18942904484 } ,
{ "genesis_time" : 1 , "nanos" : 788529068 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -87658270040 , "text" : "datekey: -0808-03-21T16:32:40.788529068Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 275399950612 , "text" : "datekey: 10697-01-28T10:16:52Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 63060614937 , "round_time" : 63060614937 , "seconds" : 63060614937 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 1524816 , "round_time" : 131744016001 , "seconds" : 131744014828 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 345786 , "round_time" : 29875824001 , "seconds" : 29875739233 } ,
{ "genesis_time" : 1 , "nanos" : 975235691 , "period" : 86400 , "result" : "ok" , "round" : 1773378 , "round_time" : 153219772801 , "seconds" : 153219713107 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -2 , "text" : "datekey: 1969-12-31T23:59:58.999999999Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 2 , "round_time" : 86401 , "seconds" : 8 } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -1 , "text" : "datekey: 1969-12-31T23:59:59.000000001Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 423605 , "round_time" : 36599385601 , "seconds" : 36599374546 } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300797 , "text" : "datekey: round 2932898 outside 1..2932897 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 86400 , "result" : "ok" , "round" : 2 , "round_time" : 86401 , "seconds" : 5 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 2073830 , "round_time" : 179178825601 , "seconds" : 179178787963 } ,
{ "genesis_time" : 1 , "nanos" : 489429419 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -16184237180 , "text" : "datekey: 1457-02-21T10:33:40.489429419Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 2645076 , "round_time" : 228534480001 , "seconds" : 228534427804 } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 86400 , "result" : "ok" , "round" : 1306688 , "round_time" : 112897756801 , "seconds" : 112897681952 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 974810 , "round_time" : 84223497601 , "seconds" : 84223497601 } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 900923 , "round_time" : 77839660801 , "seconds" : 77839617195 } ,
{ "genesis_time" : 1 , "nanos" : 176109358 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300796 , "text" : "datekey: round 2932898 outside 1..2932897 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 1754940 , "round_time" : 151626729601 , "seconds" : 151626703958 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 204435 , "round_time" : 17663097601 , "seconds" : 17663096471 } ,
{ "genesis_time" : 1 , "nanos" : 240418023 , "period" : 86400 , "result" : "ok" , "round" : 831248 , "round_time" : 71819740801 , "seconds" : 71819720508 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 1151314 , "round_time" : 99473443201 , "seconds" : 99473356802 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 1342089 , "round_time" : 115956403201 , "seconds" : 115956340919 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 2435853 , "round_time" : 210457612801 , "seconds" : 210457587958 } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300804 , "text" : "datekey: 10000-01-01T00:00:04.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 999999999 , "period" : 86400 , "result" : "ok" , "round" : 1132119 , "round_time" : 97814995201 , "seconds" : 97814908801 } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300809 , "text" : "datekey: 10000-01-01T00:00:09.000000001Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300793 , "text" : "datekey: round 2932898 outside 1..2932897 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 1702655 , "round_time" : 147109305601 , "seconds" : 147109284989 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 2307986 , "round_time" : 199409904001 , "seconds" : 199409827327 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 1258082 , "round_time" : 108698198401 , "seconds" : 108698133950 } ,
{ "genesis_time" : 1 , "nanos" : 1 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -9 , "text" : "datekey: 1969-12-31T23:59:51.000000001Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -7 , "text" : "datekey: 1969-12-31T23:59:53Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 1844127 , "round_time" : 159332486401 , "seconds" : 159332477100 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -7 , "text" : "datekey: 1969-12-31T23:59:53Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -114330242934 , "text" : "datekey: -1653-01-08T07:11:06Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 993605 , "round_time" : 85847385601 , "seconds" : 85847316099 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 2 , "round_time" : 86401 , "seconds" : 11 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 545847 , "round_time" : 47161094401 , "seconds" : 47161056706 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 1009833 , "round_time" : 87249484801 , "seconds" : 87249469992 } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -7655264947 , "text" : "datekey: 1727-06-01T09:30:53Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "nanos" : 0 , "period" : 86400 , "result" : "ok" , "round" : 697019 , "round_time" : 60222355201 , "seconds" : 60222355200 } ,
{ "genesis_time" : 253402300789 , "nanos" : 999999999 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 3 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300797 , "text" : "datekey: round 3 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300789 , "nanos" : 999999999 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300789 } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300788 , "text" : "datekey: 9999-12-31T23:59:48Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 999999999 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300792 } ,
{ "genesis_time" : 253402300789 , "nanos" : 999999999 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300791 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300791 } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ok" , "round" : 1 , "round_time" : 253402300789 , "seconds" : 253402300789 } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300795 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -2420045479 , "text" : "datekey: 1893-04-24T05:08:41Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 1 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300790 } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300795 } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300791 } ,
{ "genesis_time" : 253402300789 , "nanos" : 999999999 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300788 , "text" : "datekey: 9999-12-31T23:59:48.999999999Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 7780199 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300801 , "text" : "datekey: 10000-01-01T00:00:01.007780199Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300791 } ,
{ "genesis_time" : 253402300789 , "nanos" : 1 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300797 , "text" : "datekey: round 3 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 342334711409 , "text" : "datekey: 12818-02-26T07:23:29Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 1 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300790 } ,
{ "genesis_time" : 253402300789 , "nanos" : 754146369 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300791 } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 3 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 48333349444 , "text" : "datekey: 3501-08-16T18:24:04Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 298152681164 , "text" : "datekey: 11418-01-31T05:12:44Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 1 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300788 , "text" : "datekey: 9999-12-31T23:59:48.000000001Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 1 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300782 , "text" : "datekey: 9999-12-31T23:59:42.000000001Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300796 } ,
{ "genesis_time" : 253402300789 , "nanos" : 66648793 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300791 } ,
{ "genesis_time" : 253402300789 , "nanos" : 999999999 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300779 , "text" : "datekey: 9999-12-31T23:59:39.999999999Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300798 , "text" : "datekey: round 3 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 999999999 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300796 , "text" : "datekey: round 3 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 13937632 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300788 , "text" : "datekey: 9999-12-31T23:59:48.013937632Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300801 , "text" : "datekey: 10000-01-01T00:00:01Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300790 } ,
{ "genesis_time" : 253402300789 , "nanos" : 1 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300802 , "text" : "datekey: 10000-01-01T00:00:02.000000001Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300790 } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300788 , "text" : "datekey: 9999-12-31T23:59:48Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 999999999 , "period" : 7 , "result" : "ok" , "round" : 2 , "round_time" : 253402300796 , "seconds" : 253402300790 } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300786 , "text" : "datekey: 9999-12-31T23:59:46Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "nanos" : 0 , "period" : 7 , "result" : "ok" , "round" : 1 , "round_time" : 253402300789 , "seconds" : 253402300789 } ,
{ "genesis_time" : 253402300789 , "nanos" : 1 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300798 , "text" : "datekey: round 3 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300798 , "text" : "datekey: 9999-12-31T23:59:58Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 559700898 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -52741965471 , "text" : "datekey: 0298-09-03T14:02:09.559700898Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 215274177 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300807 , "text" : "datekey: 10000-01-01T00:00:07Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 231006408926 , "text" : "datekey: 9290-04-20T06:55:26Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 1 , "round_time" : 253402300799 , "seconds" : 253402300799 } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300793 , "text" : "datekey: 9999-12-31T23:59:53.999999999Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 304872352738 , "text" : "datekey: 11631-01-08T04:38:58Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 149210363362 , "text" : "datekey: 6698-04-15T19:09:22Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 1 , "round_time" : 253402300799 , "seconds" : 253402300799 } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 187409904873 , "text" : "datekey: 7908-10-14T02:54:33Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300808 , "text" : "datekey: 10000-01-01T00:00:08Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 1 , "round_time" : 253402300799 , "seconds" : 253402300799 } ,
{ "genesis_time" : 253402300799 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 1 , "round_time" : 253402300799 , "seconds" : 253402300799 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300797 , "text" : "datekey: 9999-12-31T23:59:57.000000001Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 196602200813 , "text" : "datekey: 8200-01-28T10:26:53.999999999Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 285872219 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 88258554291 , "text" : "datekey: 4766-10-21T01:04:51.285872219Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 55287287829 , "text" : "datekey: 3721-12-26T03:57:09Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 370161248967 , "text" : "datekey: 13699-12-10T17:09:27Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 1 , "round_time" : 253402300799 , "seconds" : 253402300799 } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 152291645 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -41299237284 , "text" : "datekey: 0661-04-12T13:38:36.152291645Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300809 , "text" : "datekey: 10000-01-01T00:00:09Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300804 , "text" : "datekey: 10000-01-01T00:00:04Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300798 , "text" : "datekey: 9999-12-31T23:59:58Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 200045998299 , "text" : "datekey: 8309-03-17T04:51:39Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 138571879466 , "text" : "datekey: 6361-03-03T04:44:26.999999999Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 86341576534 , "text" : "datekey: 4706-01-21T19:15:34Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300795 , "text" : "datekey: 9999-12-31T23:59:55Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300799 , "nanos" : 0 , "period" : 1 , "result" : "ok" , "round" : 1 , "round_time" : 253402300799 , "seconds" : 253402300799 } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 89099885 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 188138873074 , "text" : "datekey: 7931-11-20T06:04:34.089099885Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : -27740712044 , "text" : "datekey: 1090-12-06T22:39:16Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 52769786953 , "text" : "datekey: 3642-03-17T10:09:13.000000001Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 491974105 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.491974105Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 783639085 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300801 , "text" : "datekey: 10000-01-01T00:00:01.783639085Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 705045702 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 307475625815 , "text" : "datekey: 11713-07-07T16:03:35.705045702Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 33393822 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 350535743509 , "text" : "datekey: 13078-01-13T15:51:49.033393822Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300803 , "text" : "datekey: 10000-01-01T00:00:03.000000001Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 909323915 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: 9999-12-31T23:59:59.909323915Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300805 , "text" : "datekey: 10000-01-01T00:00:05Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.000000001Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300805 , "text" : "datekey: 10000-01-01T00:00:05Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300803 , "text" : "datekey: 10000-01-01T00:00:03Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 13896613628 , "text" : "datekey: 2410-05-14T10:27:08Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: 9999-12-31T23:59:59Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300802 , "text" : "datekey: 10000-01-01T00:00:02Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300804 , "text" : "datekey: 10000-01-01T00:00:04Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.000000001Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 973126074 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.973126074Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 28942318896 , "text" : "datekey: 2887-02-22T13:01:36Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 714966861 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.714966861Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300800 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300801 , "text" : "datekey: 10000-01-01T00:00:01.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300799 , "text" : "datekey: 9999-12-31T23:59:59.999999999Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 538702333 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.538702333Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 269344062914 , "text" : "datekey: 10505-03-05T03:15:14.000000001Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300805 , "text" : "datekey: 10000-01-01T00:00:05Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 196955461 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 160394469442 , "text" : "datekey: 7052-09-12T11:17:22.196955461Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300795 , "text" : "datekey: 9999-12-31T23:59:55Z is before the genesis of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300801 , "text" : "datekey: 10000-01-01T00:00:01Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300808 , "text" : "datekey: 10000-01-01T00:00:08Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 999999999 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300800 , "text" : "datekey: 10000-01-01T00:00:00.999999999Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "nanos" : 0 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "seconds" : 253402300802 , "text" : "datekey: 10000-01-01T00:00:02Z is after 9999-12-31T23:59:59Z: ERR_DATEKEY_INVALID" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 253402300800 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 0 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 31242697 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 286447985507 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 68222600569 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 792513366 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 104796072244 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 156543237189 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 253402300806 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 0 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 48633432021 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 142049163546 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 945931462 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 23477407136 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 0 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : -87795146138 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 264847344830 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : -18263500042 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 1692803377 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 1692803377 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 286281778320 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 170099550710 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : -24521319471 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 1692803357 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 253402300800 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 257226330080 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 4139711085 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 184102530062 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 0 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 857174851 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 321067604977 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 1692803373 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 126829056415 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 0 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 41399321430 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 1692803357 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 1 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 169527806308 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 0 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 158279605302 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 150163740992 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 30581604773 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 69381611313 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 0 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 61729003602 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" } ,
{ "genesis_time" : 1692803367 , "nanos" : 999999999 , "period" : 0 , "result" : "ERR_UNKNOWN_PROFILE" , "seconds" : 85955355827 , "text" : "datekey: profile datekeys:quicknet:v1 has no whole-second period: ERR_UNKNOWN_PROFILE" }
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
] ,
"round_time" : [
{ "genesis_time" : 1692803367 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..83903165811 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "result" : "ok" , "round" : 1 , "seconds" : 1692803367 } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "result" : "ok" , "round" : 2 , "seconds" : 1692803370 } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "result" : "ok" , "round" : 83903165810 , "seconds" : 253402300794 } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "result" : "ok" , "round" : 83903165811 , "seconds" : 253402300797 } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "round" : 83903165812 , "text" : "datekey: round 83903165812 outside 1..83903165811 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..83903165811 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "period" : 3 , "result" : "ok" , "round" : 81396292382 , "seconds" : 245881680510 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1595431050 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..8393562325 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "result" : "ok" , "round" : 1 , "seconds" : 1595431050 } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "result" : "ok" , "round" : 2 , "seconds" : 1595431080 } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "result" : "ok" , "round" : 8393562324 , "seconds" : 253402300740 } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "result" : "ok" , "round" : 8393562325 , "seconds" : 253402300770 } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "round" : 8393562326 , "text" : "datekey: round 8393562326 outside 1..8393562325 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..8393562325 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1595431050 , "period" : 30 , "result" : "ok" , "round" : 4266922618 , "seconds" : 129603109560 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..253402300799 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "period" : 1 , "result" : "ok" , "round" : 1 , "seconds" : 1 } ,
{ "genesis_time" : 1 , "period" : 1 , "result" : "ok" , "round" : 2 , "seconds" : 2 } ,
{ "genesis_time" : 1 , "period" : 1 , "result" : "ok" , "round" : 253402300798 , "seconds" : 253402300798 } ,
{ "genesis_time" : 1 , "period" : 1 , "result" : "ok" , "round" : 253402300799 , "seconds" : 253402300799 } ,
{ "genesis_time" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 253402300800 , "text" : "datekey: round 253402300800 outside 1..253402300799 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..253402300799 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1 , "period" : 1 , "result" : "ok" , "round" : 162465057412 , "seconds" : 162465057412 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..2932897 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "period" : 86400 , "result" : "ok" , "round" : 1 , "seconds" : 1 } ,
{ "genesis_time" : 1 , "period" : 86400 , "result" : "ok" , "round" : 2 , "seconds" : 86401 } ,
{ "genesis_time" : 1 , "period" : 86400 , "result" : "ok" , "round" : 2932896 , "seconds" : 253402128001 } ,
{ "genesis_time" : 1 , "period" : 86400 , "result" : "ok" , "round" : 2932897 , "seconds" : 253402214401 } ,
{ "genesis_time" : 1 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "round" : 2932898 , "text" : "datekey: round 2932898 outside 1..2932897 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "period" : 86400 , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..2932897 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1 , "period" : 86400 , "result" : "ok" , "round" : 1461770 , "seconds" : 126296841601 } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300789 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "result" : "ok" , "round" : 1 , "seconds" : 253402300789 } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "result" : "ok" , "round" : 2 , "seconds" : 253402300796 } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "result" : "ok" , "round" : 1 , "seconds" : 253402300789 } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "result" : "ok" , "round" : 2 , "seconds" : 253402300796 } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "round" : 3 , "text" : "datekey: round 3 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "result" : "ok" , "round" : 1 , "seconds" : 253402300789 } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "result" : "ok" , "round" : 1 , "seconds" : 253402300799 } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 2 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "result" : "ok" , "round" : 1 , "seconds" : 253402300799 } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 2 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "result" : "ok" , "round" : 1 , "seconds" : 253402300799 } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 2 , "text" : "datekey: round 2 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "result" : "ERR_DATEKEY_INVALID" , "round" : 2 , "text" : "datekey: round 2 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" }
] ,
"validate" : [
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..83903165811 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1 } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 2 } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 83903165810 } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 83903165810 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 83903165811 } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 83903165811 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 83903165812 , "text" : "datekey: round 83903165812 outside 1..83903165811 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 83903165812 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..83903165811 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 9007199254740991 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 81396292382 } ,
{ "genesis_time" : 1692803367 , "period" : 3 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 81396292382 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..8393562325 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1 } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 2 } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 8393562324 } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 8393562324 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 8393562325 } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 8393562325 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 8393562326 , "text" : "datekey: round 8393562326 outside 1..8393562325 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 8393562326 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..8393562325 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 9007199254740991 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 4266922618 } ,
{ "genesis_time" : 1595431050 , "period" : 30 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 4266922618 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..253402300799 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1 } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 2 } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 253402300798 } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 253402300798 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 253402300799 } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 253402300799 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 253402300800 , "text" : "datekey: round 253402300800 outside 1..253402300799 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 253402300800 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..253402300799 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 9007199254740991 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 162465057412 } ,
{ "genesis_time" : 1 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 162465057412 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..2932897 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1 } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 2 } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 2932896 } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2932896 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 2932897 } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2932897 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 2932898 , "text" : "datekey: round 2932898 outside 1..2932897 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2932898 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..2932897 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 9007199254740991 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1461770 } ,
{ "genesis_time" : 1 , "period" : 86400 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1461770 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
Stage 4b: the differential of the formats against Go
tool/formats_go_vectors.go runs in the module of datekeys-go at c531e93,
without changing anything there, and writes test/vectors/formats_*.json:
the result, the normative code and the text of Go on inputs of a fixed
seed, valid and broken in every layer of spec §69.1, and on the fixtures
of testdata/, edited:
- the PRELUDE (229 cases), the steps 1 to 3 of capsule.Inspect on cut and
edited fixtures (492) and whole .dkk files (268);
- PUBLIC_HEADER (660) and CONTROL_CBOR of the three formats (618);
- Provider Profiles decoded (163) and validated as values (60);
- extension arrays (260), Canonical (80), CheckDisjoint (50), the
registries with places (120) and CheckWrite with Standard (60);
- dk1_ strings (466);
- RFC 3339 parsed (434) and formatted (80), Resolve (320), RoundTime (64),
Validate (128) and MaxRound (8), on profiles of other genesis times and
periods;
- PaddedLength and PayloadAgeLength at the boundaries up to L_MAX (474),
and the check of the padding of capsule.Open at step 17 on fixtures whose
PAYLOAD_AGE is encrypted again with an edited plaintext (56);
- the encoders on values and the decoders at the limits of spec §57 (90);
- the frame of BODY (260) and the zeros of the area (60).
The output is the same on every run. formats_vectors.g.dart holds every
eighth case as Dart constants, so that the differential runs compiled to
JavaScript too, on Node.js; a test on the VM checks that they are those of
the files. Every file is under 310 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1 } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 2 } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1 } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 2 } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 3 , "text" : "datekey: round 3 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 3 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..2 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 9007199254740991 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1 } ,
{ "genesis_time" : 253402300789 , "period" : 7 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1 } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 2 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1 } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 2 , "text" : "datekey: round 2 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..1 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 9007199254740991 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ok" , "round" : 1 } ,
{ "genesis_time" : 253402300799 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 2 , "text" : "datekey: round 2 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 9007199254740991 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 253402300800 , "period" : 1 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 2 , "text" : "datekey: round 2 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 2 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 0 , "text" : "datekey: round 0 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 0 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 9007199254740991 , "text" : "datekey: round 9007199254740991 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 9007199254740991 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v1" , "result" : "ERR_DATEKEY_INVALID" , "round" : 1 , "text" : "datekey: round 1 outside 1..0 of datekeys:quicknet:v1: ERR_DATEKEY_INVALID" } ,
{ "genesis_time" : 1692803367 , "period" : 0 , "profile_id" : "datekeys:quicknet:v2" , "result" : "ERR_PROFILE_MISMATCH" , "round" : 1 , "text" : "datekey: profile \"datekeys:quicknet:v2\", expected \"datekeys:quicknet:v1\": ERR_PROFILE_MISMATCH" }
] ,
"max_round" : [
{ "genesis_time" : 1692803367 , "max_round" : 83903165811 , "period" : 3 } ,
{ "genesis_time" : 1595431050 , "max_round" : 8393562325 , "period" : 30 } ,
{ "genesis_time" : 1 , "max_round" : 253402300799 , "period" : 1 } ,
{ "genesis_time" : 1 , "max_round" : 2932897 , "period" : 86400 } ,
{ "genesis_time" : 253402300789 , "max_round" : 2 , "period" : 7 } ,
{ "genesis_time" : 253402300799 , "max_round" : 1 , "period" : 1 } ,
{ "genesis_time" : 253402300800 , "max_round" : 0 , "period" : 1 } ,
{ "genesis_time" : 1692803367 , "max_round" : 0 , "period" : 0 }
]
}