You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dateKeys-dart/test/vectors/open_inspect.json

21 lines
102 KiB

Stage 4c: the vectors of Go for the head, the note and the opening tool/mutation_go_texts.go ports scripts/mutation-go-texts.go of datekeys-ts over the synced testdata of this repository, the tag spec-v0.11: it replays every case of the mutation corpus as the testkit of the reference does and writes the text of capsule.Open and its checks, with the detail of each step, in mutation_texts.json. Where Go and the corpus disagree on a code or a step it would say so in the case; Go at c531e93 and at the tag spec-v0.11 agree with all 210 cases, and give the same file, byte for byte. tool/open_go_vectors.go runs in an export of datekeys-go, since it uses internal/testkit, internal/cbortest and internal/inspectview, and writes: - open_cases.json: capsule.Open on every fixture with each of its credentials, and 117 openings of edited fixtures or with other options at each step that the corpus does not reach: the frame, the fields, the extensions and the bindings of a .dkk at step 9.a, the clock and the failures of the release source, the age headers of steps 11 and 17, a malformed X25519 stanza in INNER_ACCESS_AGE, CONTROL_CBOR and the BODY of format 3 sealed again, the sinks and the output that fail, the refusal of Accept and the unusable extensions of each object, with the text, the step, the checks, the release requests, the state of the sink and the content or the files; - open_heads.json: capsule.DecodeHead and EncodeHead of heads of a fixed seed, valid and broken in each layer of spec §69.1; - open_notes.json: extension.CheckNote, Note, Header.UnusableNote and extension.Standard with a note; - open_inspect.json: the text of capsule.Inspect for each of the 5110 mutations of inspect_differential.json, where Go and the file also agree, and the exact output of datekeys inspect -json with public notes; - open_vectors.g.dart: seven small fixtures, their records and a part of each file, for the tests that run compiled to JavaScript. The edited capsules are sealed again with the file keys and the nonces of the fixtures, as the testkit does, so the output is the same on every run. 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 4c: the vectors of Go for the head, the note and the opening tool/mutation_go_texts.go ports scripts/mutation-go-texts.go of datekeys-ts over the synced testdata of this repository, the tag spec-v0.11: it replays every case of the mutation corpus as the testkit of the reference does and writes the text of capsule.Open and its checks, with the detail of each step, in mutation_texts.json. Where Go and the corpus disagree on a code or a step it would say so in the case; Go at c531e93 and at the tag spec-v0.11 agree with all 210 cases, and give the same file, byte for byte. tool/open_go_vectors.go runs in an export of datekeys-go, since it uses internal/testkit, internal/cbortest and internal/inspectview, and writes: - open_cases.json: capsule.Open on every fixture with each of its credentials, and 117 openings of edited fixtures or with other options at each step that the corpus does not reach: the frame, the fields, the extensions and the bindings of a .dkk at step 9.a, the clock and the failures of the release source, the age headers of steps 11 and 17, a malformed X25519 stanza in INNER_ACCESS_AGE, CONTROL_CBOR and the BODY of format 3 sealed again, the sinks and the output that fail, the refusal of Accept and the unusable extensions of each object, with the text, the step, the checks, the release requests, the state of the sink and the content or the files; - open_heads.json: capsule.DecodeHead and EncodeHead of heads of a fixed seed, valid and broken in each layer of spec §69.1; - open_notes.json: extension.CheckNote, Note, Header.UnusableNote and extension.Standard with a note; - open_inspect.json: the text of capsule.Inspect for each of the 5110 mutations of inspect_differential.json, where Go and the file also agree, and the exact output of datekeys inspect -json with public notes; - open_vectors.g.dart: seven small fixtures, their records and a part of each file, for the tests that run compiled to JavaScript. The edited capsules are sealed again with the file keys and the nonces of the fixtures, as the testkit does, so the output is the same on every run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
"generator": "tool/open_go_vectors.go",
"source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4",
"description": "texts: the texts of the errors of capsule.Inspect, and results: for each mutation of testdata/vectors/inspect_differential.json, in its order, the index of its text in texts, -1 when steps 1 to 8 pass. views: the exact output of datekeys inspect -json (internal/inspectview) for time_only_extensions with another PUBLIC_HEADER, with the registry standard (extension.Standard), none, or reject_all, which knows every extension and rejects all data with not today.",
"texts": ["capsule: PUBLIC_HEADER: key 3: codec: offset 34: text string is not valid UTF-8: ERR_NON_CANONICAL_CBOR","capsule: PAYLOAD_AGE: agewrap: not an age v1 header: malformed, truncated or beyond the parser limits: ERR_INTEGRITY","capsule: SEALED_CONTROL: agewrap: not an age v1 header: malformed, truncated or beyond the parser limits: ERR_INTEGRITY","capsule: PUBLIC_HEADER: key 3: codec: offset 34: 19 is not in its shortest form (initial byte 0x78): ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER: datekey: payload is not valid UTF-8: ERR_DATEKEY_INVALID","capsule: PUBLIC_HEADER: datekey: missing \"dk1_\" prefix: ERR_DATEKEY_INVALID","capsule: ERR_INVALID_MAGIC","capsule: PUBLIC_HEADER: datekey: payload is not a JSON object: ERR_DATEKEY_INVALID","capsule: PUBLIC_HEADER: codec: offset 2: text string is not valid UTF-8: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER: key 3: codec: offset 36: truncated input: a text string of 83 bytes: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER: datekey: payload is not Base64URL: ERR_DATEKEY_INVALID","capsule: PUBLIC_HEADER: key 11 is not defined: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER: key 6: extension: codec: offset 16: a byte string where an array was expected: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER: datekey: invalid network date+eys:quicknet:v1: ERR_DATEKEY_INVALID","agewrap: tlock stanza chain hash \"52db9ba70e0cc0f6eaf7803`d07447a1f5477735fd3f661792ba94600c84e971\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","capsule: PUBLIC_HEADER: codec: type \"datekaycap\", want \"datekeycap\": ERR_NON_CANONICAL_CBOR","capsule: SEALED_CONTROL_LEN 67109310 outside 1..67108864: ERR_INTEGRITY","capsule: PUBLIC_HEADER: codec: offset 43: a negative integer (initial byte 0x32) is outside the CBOR profile: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER_LEN 8388729 outside 1..1048576: ERR_INTEGRITY","capsule: PUBLIC_HEADER: codec: type \"datekey-ap\", want \"datekeycap\": ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER_LEN 1073741945 outside 1..1048576: ERR_INTEGRITY","capsule: SEALED_CONTROL_LEN 402653630 outside 1..67108864: ERR_INTEGRITY","capsule: PUBLIC_HEADER: codec: offset 2: a map where a text string was expected: ERR_NON_CANONICAL_CBOR","capsule: truncated SEALED_CONTROL: ERR_INTEGRITY","capsule: truncated prelude: ERR_INTEGRITY","capsule: truncated PUBLIC_HEADER: ERR_INTEGRITY","capsule: PUBLIC_HEADER: codec: offset 13: a map where an unsigned integer was expected: ERR_NON_CANONICAL_CBOR","capsule: SEALED_CONTROL_LEN 2030043137 outside 1..67108864: ERR_INTEGRITY","capsule: flags 0x0, reserved 0xeb1c: ERR_INVALID_FLAGS","capsule: SEALED_CONTROL_LEN 2087259136 outside 1..67108864: ERR_INTEGRITY","capsule: PUBLIC_HEADER_LEN 8744373 outside 1..1048576: ERR_INTEGRITY","capsule: OUTER_TIME_AGE must hold exactly one tlock stanza, found 1: ERR_POLICY_STRUCTURE_MISMATCH","capsule: PUBLIC_HEADER: codec: offset 119: a text string where an unsigned integer was expected: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER: codec: offset 14: map key 2 where key 1 was expected: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER: codec: offset 33: a text string where an unsigned integer was expected: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER: codec: offset 1: a text string where an unsigned integer was expected: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER: codec: offset 121: 325 trailing bytes: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER_LEN 1048577 outside 1..1048576: ERR_INTEGRITY","capsule: PUBLIC_HEADER: codec: offset 121: 65536 trailing bytes: ERR_NON_CANONICAL_CBOR","capsule: SEALED_CONTROL_LEN 67108865 outside 1..67108864: ERR_INTEGRITY","capsule: PUBLIC_HEADER: codec: offset 121: 25 trailing bytes: ERR_NON_CANONICAL_CBOR","capsule: SEALED_CONTROL_LEN 1001941901 outside 1..67108864: ERR_INTEGRITY","capsule: PUBLIC_HEADER_LEN 67108985 outside 1..1048576: ERR_INTEGRITY","capsule: PUBLIC_HEADER: codec: offset 121: 135 trailing bytes: ERR_NON_CANONICAL_CBOR","capsule: PUBLIC_HEADER_LEN 6
"results": [-1,-1,0,0,-1,1,1,2,3,4,5,-1,-1,6,-1,-1,-1,2,7,7,-1,-1,7,-1,7,8,-1,2,1,-1,-1,9,6,1,10,-1,2,6,11,12,1,-1,7,2,-1,-1,13,-1,1,-1,14,2,2,-1,1,-1,15,16,0,17,1,-1,2,18,1,1,10,-1,10,0,1,1,6,19,1,-1,20,2,21,22,4,2,2,10,0,0,0,10,2,1,-1,23,23,23,24,25,23,23,23,23,1,24,1,1,23,23,23,23,23,23,23,23,23,23,25,2,26,0,6,2,2,1,0,27,0,1,2,0,1,0,8,1,-1,2,28,-1,-1,0,2,29,1,27,8,2,30,2,31,32,1,6,-1,1,2,2,2,33,1,33,1,32,34,2,-1,35,33,1,2,6,-1,2,1,-1,2,2,2,36,1,37,38,39,25,40,1,41,42,23,43,44,45,1,1,2,45,46,1,47,48,45,1,2,49,50,51,52,53,54,55,56,57,58,59,60,61,45,62,63,64,65,66,67,68,0,69,70,70,71,72,73,74,52,75,76,77,78,79,80,81,4,82,83,84,85,69,86,87,88,89,71,90,91,56,71,73,83,33,50,79,92,88,86,93,94,50,60,95,5,96,97,98,99,7,49,100,101,95,102,103,51,-1,104,105,106,107,108,86,109,110,109,111,7,7,7,7,112,7,10,111,111,111,113,4,111,114,111,111,1,2,-1,1,-1,1,115,116,115,117,1,-1,118,2,1,2,1,2,1,-1,2,1,119,2,117,2,120,115,31,31,121,2,-1,2,122,123,124,2,1,1,-1,2,2,2,125,126,127,2,-1,-1,1,2,2,117,2,1,2,1,128,1,6,10,6,10,1,6,129,-1,1,-1,2,10,25,-1,2,10,130,131,2,-1,132,-1,10,-1,-1,-1,-1,133,-1,-1,134,1,25,-1,-1,-1,-1,-1,-1,-1,1,135,-1,2,4,-1,2,1,136,137,23,109,4,6,2,1,4,7,-1,2,-1,2,2,6,138,-1,1,-1,2,1,139,140,2,2,-1,2,2,2,2,2,1,141,2,10,-1,25,2,-1,6,6,1,25,1,23,25,25,23,23,23,1,1,23,1,23,23,23,23,1,23,23,25,23,23,23,23,1,-1,6,8,0,6,-1,1,2,-1,142,0,143,144,0,145,146,147,2,0,1,148,1,1,6,2,2,2,149,142,35,-1,0,150,0,-1,2,151,1,1,2,152,152,1,34,153,154,1,1,0,1,155,152,2,-1,156,-1,157,2,2,158,158,1,159,160,39,161,9,162,2,163,164,1,165,166,167,9,168,25,158,169,170,1,171,172,75,87,100,-1,173,174,59,175,176,177,178,71,179,62,180,181,182,183,33,184,173,56,95,185,186,187,188,-1,69,91,98,189,22,190,191,64,192,193,194,195,70,78,196,197,198,78,199,50,104,83,200,201,2,202,67,203,95,88,204,193,65,53,205,206,49,207,208,72,0,209,210,193,102,73,-1,211,212,52,213,33,111,7,10,214,107,214,0,7,111,7,5,111,108,4,111,111,111,7,114,215,7,7,4,10,7,216,2,117,217,2,1,119,1,2,31,-1,117,1,1,115,128,2,1,218,-1,1,117,2,-1,1,2,-1,115,2,2,2,2,115,2,23,2,2,2,1,1,2,-1,1,-1,2,1,219,2,2,220,221,2,1,-1,128,128,2,2,-1,121,2,-1,-1,1,-1,-1,1,222,2,-1,-1,2,6,223,-1,1,224,-1,225,10,-1,109,-1,0,226,-1,2,7,2,227,-1,2,-1,-1,228,-1,-1,-1,10,229,-1,4,25,0,2,-1,-1,2,86,-1,10,7,2,-1,230,231,-1,-1,4,232,10,10,2,-1,2,0,-1,233,1,-1,234,2,-1,10,2,-1,2,10,235,2,25,2,-1,6,-1,10,25,1,2,10,23,23,25,23,25,25,1,23,25,1,1,23,1,23,23,25,25,25,23,23,23,23,23,23,23,-1,1,2,2,-1,2,2,2,1,1,0,2,142,2,1,236,0,237,6,2,142,1,1,238,1,0,1,1,2,1,32,-1,1,1,-1,32,32,32,-1,1,1,32,1,32,239,1,1,32,32,1,1,1,-1,34,2,1,240,32,1,1,25,2,25,1,241,1,66,242,243,43,23,244,245,246,43,247,164,248,23,249,250,39,251,37,45,51,252,253,212,100,60,254,255,87,176,49,51,66,65,33,256,257,53,180,81,258,78,259,33,98,260,261,82,262,102,-1,263,50,205,59,175,71,88,68,71,75,85,51,191,61,264,200,77,56,174,45,53,0,51,51,76,173,177,265,179,67,266,105,65,51,70,185,51,55,62,267,62,71,176,57,73,66,51,69,62,86,111,86,192,7,10,106,268,111,111,80,7,4,114,7,4,111,5,269,108,4,207,94,7,111,2,121,1,117,2,128,1,2,2,1,120,31,217,31,1,-1,2,2,128,1,123,2,1,2,2,-1,1,117,-1,1,1,128,31,1,117,-1,2,-1,2,1,1,1,1,119,117,-1,2,-1,2,-1,31,-1,2,1,115,2,270,31,1,271,-1,-1,2,-1,6,10,23,-1,272,-1,-1,1,273,-1,-1,-1,-1,-1,1,-1,23,6,-1,1,4,-1,1,10,-1,6,18,-1,-1,23,109,274,1,-1,10,275,276,-1,-1,277,-1,-1,-1,-1,1,1,-1,-1,-1,10,7,2,278,-1,7,2,5,4,1,279,-1,280,1,2,-1,281,2,1,6,1,2,0,23,2,95,1,2,2,2,-1,1,1,1,0,4,-1,23,23,25,23,23,23,23,1,23,23,23,23,23,1,23,23,-1,25,23,25,23,1,25,23,1,8,1,2,2,282,142,283,0,2,2,236,1,1,282,-1,2,142,1,1,236,6,6,2,1,284,1,1,1,142,0,2,32,285,32,1,1,2,1,150,32,2,1,32,157,1,286,32,287,2,288,-1,2,150,32,1,1,1,1,1,285,289,290,163,1,43,1,291,167,66,23,244,23,25,1,292,44,42,293,294,45,295,296,9,25,66,266,50,68,297,298,299,82,178,63,174,300,100,56,70,112,183,194,60,301,255,302,73,33,65,81,53,95,303,304,87,183,62,91,-1,89,305,2,98,49,69,0,103,306,109,67,256,79,59,307,212,5,52,308,195,192,252,309,265,177,253,173,310,71,264,70,185,263,176,311,83,180,45,-1,183,176,60,51,52,260,72,111,113,107,312,7,106,111,4,7,80,207,313,114,111,111,10,86,314,315,4,111,10,302,10,
"views": [
{"dkc":{"base":"time_only_extensions.dkc","edits":[[11,1,"a9"],[141,34,"6d646174656b6579732e6e6f746501010258194361727461732064656c207669616a"],[175,0,"652061204c6973626f61"]]},"name":"a public note","registry":"standard","view":"{\n \"file\": \"capsule.dkc\",\n \"format\": 1,\n \"capsule_id\": \"4286085c21ca34d1a71e649326a4a0f6\",\n \"datekey\": \"dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0\",\n \"profile\": \"datekeys:quicknet:v1\",\n \"round\": 2000,\n \"unlock_at\": \"2023-08-23T16:49:24Z\",\n \"access_policy\": \"time_only\",\n \"public_note\": \"Cartas del viaje a Lisboa\",\n \"valid\": true,\n \"checks\": [\n {\n \"step\": 1,\n \"name\": \"parse DKC1\",\n \"ok\": true,\n \"detail\": \"magic DKC1\"\n },\n {\n \"step\": 2,\n \"name\": \"prelude\",\n \"ok\": true,\n \"detail\": \"DKC1 v1, PUBLIC_HEADER_LEN=169, SEALED_CONTROL_LEN=482\"\n },\n {\n \"step\": 3,\n \"name\": \"public header\",\n \"ok\": true,\n \"detail\": \"169 bytes\"\n },\n {\n \"step\": 4,\n \"name\": \"header validation\",\n \"ok\": true,\n \"detail\": \"capsule_id=4286085c21ca34d1a71e649326a4a0f6 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1\"\n },\n {\n \"step\": 5,\n \"name\": \"sealed control structure\",\n \"ok\": true,\n \"detail\": \"one tlock stanza\"\n },\n {\n \"step\": 6,\n \"name\": \"payload structure\",\n \"ok\": true,\n \"detail\": \"one X25519 stanza\"\n },\n {\n \"step\": 7,\n \"name\": \"condition\",\n \"ok\": true,\n \"detail\": \"round 2000, unlock at 2023-08-23T16:49:24Z\"\n },\n {\n \"step\": 8,\n \"name\": \"tlock stanza\",\n \"ok\": true,\n \"detail\": \"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971\"\n }\n ]\n}\n"},
{"dkc":{"base":"time_only_extensions.dkc","edits":[[11,1,"a9"],[141,34,"6d646174656b6579732e6e6f746501010258194361727461732064656c207669616a"],[175,0,"652061204c6973626f61"]]},"name":"a public note, no registry","registry":"none","view":"{\n \"file\": \"capsule.dkc\",\n \"format\": 1,\n \"capsule_id\": \"4286085c21ca34d1a71e649326a4a0f6\",\n \"datekey\": \"dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0\",\n \"profile\": \"datekeys:quicknet:v1\",\n \"round\": 2000,\n \"unlock_at\": \"2023-08-23T16:49:24Z\",\n \"access_policy\": \"time_only\",\n \"public_note\": \"Cartas del viaje a Lisboa\",\n \"valid\": true,\n \"checks\": [\n {\n \"step\": 1,\n \"name\": \"parse DKC1\",\n \"ok\": true,\n \"detail\": \"magic DKC1\"\n },\n {\n \"step\": 2,\n \"name\": \"prelude\",\n \"ok\": true,\n \"detail\": \"DKC1 v1, PUBLIC_HEADER_LEN=169, SEALED_CONTROL_LEN=482\"\n },\n {\n \"step\": 3,\n \"name\": \"public header\",\n \"ok\": true,\n \"detail\": \"169 bytes\"\n },\n {\n \"step\": 4,\n \"name\": \"header validation\",\n \"ok\": true,\n \"detail\": \"capsule_id=4286085c21ca34d1a71e649326a4a0f6 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1\"\n },\n {\n \"step\": 5,\n \"name\": \"sealed control structure\",\n \"ok\": true,\n \"detail\": \"one tlock stanza\"\n },\n {\n \"step\": 6,\n \"name\": \"payload structure\",\n \"ok\": true,\n \"detail\": \"one X25519 stanza\"\n },\n {\n \"step\": 7,\n \"name\": \"condition\",\n \"ok\": true,\n \"detail\": \"round 2000, unlock at 2023-08-23T16:49:24Z\"\n },\n {\n \"step\": 8,\n \"name\": \"tlock stanza\",\n \"ok\": true,\n \"detail\": \"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971\"\n }\n ]\n}\n"},
{"dkc":{"base":"time_only_extensions.dkc","edits":[[11,1,"99"],[141,28,"6d646174656b6579732e6e6f74650101024a3c623e2026203c2f623e"],[169,6,""]]},"name":"a public note with <, > and &","registry":"standard","view":"{\n \"file\": \"capsule.dkc\",\n \"format\": 1,\n \"capsule_id\": \"4286085c21ca34d1a71e649326a4a0f6\",\n \"datekey\": \"dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0\",\n \"profile\": \"datekeys:quicknet:v1\",\n \"round\": 2000,\n \"unlock_at\": \"2023-08-23T16:49:24Z\",\n \"access_policy\": \"time_only\",\n \"public_note\": \"\\u003cb\\u003e \\u0026 \\u003c/b\\u003e\",\n \"valid\": true,\n \"checks\": [\n {\n \"step\": 1,\n \"name\": \"parse DKC1\",\n \"ok\": true,\n \"detail\": \"magic DKC1\"\n },\n {\n \"step\": 2,\n \"name\": \"prelude\",\n \"ok\": true,\n \"detail\": \"DKC1 v1, PUBLIC_HEADER_LEN=153, SEALED_CONTROL_LEN=482\"\n },\n {\n \"step\": 3,\n \"name\": \"public header\",\n \"ok\": true,\n \"detail\": \"153 bytes\"\n },\n {\n \"step\": 4,\n \"name\": \"header validation\",\n \"ok\": true,\n \"detail\": \"capsule_id=4286085c21ca34d1a71e649326a4a0f6 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1\"\n },\n {\n \"step\": 5,\n \"name\": \"sealed control structure\",\n \"ok\": true,\n \"detail\": \"one tlock stanza\"\n },\n {\n \"step\": 6,\n \"name\": \"payload structure\",\n \"ok\": true,\n \"detail\": \"one X25519 stanza\"\n },\n {\n \"step\": 7,\n \"name\": \"condition\",\n \"ok\": true,\n \"detail\": \"round 2000, unlock at 2023-08-23T16:49:24Z\"\n },\n {\n \"step\": 8,\n \"name\": \"tlock stanza\",\n \"ok\": true,\n \"detail\": \"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971\"\n }\n ]\n}\n"},
{"dkc":{"base":"time_only_extensions.dkc","edits":[[11,1,"94"],[141,23,"6d646174656b6579732e6e6f74650101024561e280a862"],[164,11,""]]},"name":"a public note with U+2028, which breaks the rules","registry":"standard","view":"{\n \"file\": \"capsule.dkc\",\n \"format\": 1,\n \"capsule_id\": \"4286085c21ca34d1a71e649326a4a0f6\",\n \"datekey\": \"dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0\",\n \"profile\": \"datekeys:quicknet:v1\",\n \"round\": 2000,\n \"unlock_at\": \"2023-08-23T16:49:24Z\",\n \"access_policy\": \"time_only\",\n \"public_note_unusable\": true,\n \"valid\": true,\n \"checks\": [\n {\n \"step\": 1,\n \"name\": \"parse DKC1\",\n \"ok\": true,\n \"detail\": \"magic DKC1\"\n },\n {\n \"step\": 2,\n \"name\": \"prelude\",\n \"ok\": true,\n \"detail\": \"DKC1 v1, PUBLIC_HEADER_LEN=148, SEALED_CONTROL_LEN=482\"\n },\n {\n \"step\": 3,\n \"name\": \"public header\",\n \"ok\": true,\n \"detail\": \"148 bytes\"\n },\n {\n \"step\": 4,\n \"name\": \"header validation\",\n \"ok\": true,\n \"detail\": \"capsule_id=4286085c21ca34d1a71e649326a4a0f6 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1, 1 unusable noncritical extensions\"\n },\n {\n \"step\": 5,\n \"name\": \"sealed control structure\",\n \"ok\": true,\n \"detail\": \"one tlock stanza\"\n },\n {\n \"step\": 6,\n \"name\": \"payload structure\",\n \"ok\": true,\n \"detail\": \"one X25519 stanza\"\n },\n {\n \"step\": 7,\n \"name\": \"condition\",\n \"ok\": true,\n \"detail\": \"round 2000, unlock at 2023-08-23T16:49:24Z\"\n },\n {\n \"step\": 8,\n \"name\": \"tlock stanza\",\n \"ok\": true,\n \"detail\": \"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971\"\n }\n ]\n}\n"},
{"dkc":{"base":"time_only_extensions.dkc","edits":[[11,1,"92"],[141,21,"6d646174656b6579732e6e6f746501010243610962"],[162,13,""]]},"name":"a public note with a tab","registry":"standard","view":"{\n \"file\": \"capsule.dkc\",\n \"format\": 1,\n \"capsule_id\": \"4286085c21ca34d1a71e649326a4a0f6\",\n \"datekey\": \"dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0\",\n \"profile\": \"datekeys:quicknet:v1\",\n \"round\": 2000,\n \"unlock_at\": \"2023-08-23T16:49:24Z\",\n \"access_policy\": \"time_only\",\n \"public_note_unusable\": true,\n \"valid\": true,\n \"checks\": [\n {\n \"step\": 1,\n \"name\": \"parse DKC1\",\n \"ok\": true,\n \"detail\": \"magic DKC1\"\n },\n {\n \"step\": 2,\n \"name\": \"prelude\",\n \"ok\": true,\n \"detail\": \"DKC1 v1, PUBLIC_HEADER_LEN=146, SEALED_CONTROL_LEN=482\"\n },\n {\n \"step\": 3,\n \"name\": \"public header\",\n \"ok\": true,\n \"detail\": \"146 bytes\"\n },\n {\n \"step\": 4,\n \"name\": \"header validation\",\n \"ok\": true,\n \"detail\": \"capsule_id=4286085c21ca34d1a71e649326a4a0f6 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1, 1 unusable noncritical extensions\"\n },\n {\n \"step\": 5,\n \"name\": \"sealed control structure\",\n \"ok\": true,\n \"detail\": \"one tlock stanza\"\n },\n {\n \"step\": 6,\n \"name\": \"payload structure\",\n \"ok\": true,\n \"detail\": \"one X25519 stanza\"\n },\n {\n \"step\": 7,\n \"name\": \"condition\",\n \"ok\": true,\n \"detail\": \"round 2000, unlock at 2023-08-23T16:49:24Z\"\n },\n {\n \"step\": 8,\n \"name\": \"tlock stanza\",\n \"ok\": true,\n \"detail\": \"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971\"\n }\n ]\n}\n"},
{"dkc":{"base":"time_only_extensions.dkc","edits":[[11,1,"8d"],[139,18,"a2006d646174656b6579732e6e6f74650101"],[157,18,""]]},"name":"a public note without data","registry":"standard","view":"{\n \"file\": \"capsule.dkc\",\n \"format\": 1,\n \"capsule_id\": \"4286085c21ca34d1a71e649326a4a0f6\",\n \"datekey\": \"dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0\",\n \"profile\": \"datekeys:quicknet:v1\",\n \"round\": 2000,\n \"unlock_at\": \"2023-08-23T16:49:24Z\",\n \"access_policy\": \"time_only\",\n \"public_note_unusable\": true,\n \"valid\": true,\n \"checks\": [\n {\n \"step\": 1,\n \"name\": \"parse DKC1\",\n \"ok\": true,\n \"detail\": \"magic DKC1\"\n },\n {\n \"step\": 2,\n \"name\": \"prelude\",\n \"ok\": true,\n \"detail\": \"DKC1 v1, PUBLIC_HEADER_LEN=141, SEALED_CONTROL_LEN=482\"\n },\n {\n \"step\": 3,\n \"name\": \"public header\",\n \"ok\": true,\n \"detail\": \"141 bytes\"\n },\n {\n \"step\": 4,\n \"name\": \"header validation\",\n \"ok\": true,\n \"detail\": \"capsule_id=4286085c21ca34d1a71e649326a4a0f6 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1, 1 unusable noncritical extensions\"\n },\n {\n \"step\": 5,\n \"name\": \"sealed control structure\",\n \"ok\": true,\n \"detail\": \"one tlock stanza\"\n },\n {\n \"step\": 6,\n \"name\": \"payload structure\",\n \"ok\": true,\n \"detail\": \"one X25519 stanza\"\n },\n {\n \"step\": 7,\n \"name\": \"condition\",\n \"ok\": true,\n \"detail\": \"round 2000, unlock at 2023-08-23T16:49:24Z\"\n },\n {\n \"step\": 8,\n \"name\": \"tlock stanza\",\n \"ok\": true,\n \"detail\": \"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971\"\n }\n ]\n}\n"},
{"dkc":{"base":"time_only_extensions.dkc","edits":[[11,1,"92"],[141,21,"6d646174656b6579732e6e6f746501020243610962"],[162,13,""]]},"name":"a public note of version 2","registry":"standard","view":"{\n \"file\": \"capsule.dkc\",\n \"format\": 1,\n \"capsule_id\": \"4286085c21ca34d1a71e649326a4a0f6\",\n \"datekey\": \"dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0\",\n \"profile\": \"datekeys:quicknet:v1\",\n \"round\": 2000,\n \"unlock_at\": \"2023-08-23T16:49:24Z\",\n \"access_policy\": \"time_only\",\n \"valid\": true,\n \"checks\": [\n {\n \"step\": 1,\n \"name\": \"parse DKC1\",\n \"ok\": true,\n \"detail\": \"magic DKC1\"\n },\n {\n \"step\": 2,\n \"name\": \"prelude\",\n \"ok\": true,\n \"detail\": \"DKC1 v1, PUBLIC_HEADER_LEN=146, SEALED_CONTROL_LEN=482\"\n },\n {\n \"step\": 3,\n \"name\": \"public header\",\n \"ok\": true,\n \"detail\": \"146 bytes\"\n },\n {\n \"step\": 4,\n \"name\": \"header validation\",\n \"ok\": true,\n \"detail\": \"capsule_id=4286085c21ca34d1a71e649326a4a0f6 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1\"\n },\n {\n \"step\": 5,\n \"name\": \"sealed control structure\",\n \"ok\": true,\n \"detail\": \"one tlock stanza\"\n },\n {\n \"step\": 6,\n \"name\": \"payload structure\",\n \"ok\": true,\n \"detail\": \"one X25519 stanza\"\n },\n {\n \"step\": 7,\n \"name\": \"condition\",\n \"ok\": true,\n \"detail\": \"round 2000, unlock at 2023-08-23T16:49:24Z\"\n },\n {\n \"step\": 8,\n \"name\": \"tlock stanza\",\n \"ok\": true,\n \"detail\": \"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971\"\n }\n ]\n}\n"},
{"dkc":{"base":"time_only_extensions.dkc","edits":[[11,1,"b9"],[138,37,"82a3006d646174656b6579732e6e6f746501010257c391616e64c3ba2c2061c3b16f203230"],[175,0,"323620f09f8c8da3006b6f72672e6578616d706c650101024101"]]},"name":"a public note and another extension","registry":"standard","view":"{\n \"file\": \"capsule.dkc\",\n \"format\": 1,\n \"capsule_id\": \"4286085c21ca34d1a71e649326a4a0f6\",\n \"datekey\": \"dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0\",\n \"profile\": \"datekeys:quicknet:v1\",\n \"round\": 2000,\n \"unlock_at\": \"2023-08-23T16:49:24Z\",\n \"access_policy\": \"time_only\",\n \"public_note\": \"Ñandú, año 2026 🌍\",\n \"valid\": true,\n \"checks\": [\n {\n \"step\": 1,\n \"name\": \"parse DKC1\",\n \"ok\": true,\n \"detail\": \"magic DKC1\"\n },\n {\n \"step\": 2,\n \"name\": \"prelude\",\n \"ok\": true,\n \"detail\": \"DKC1 v1, PUBLIC_HEADER_LEN=185, SEALED_CONTROL_LEN=482\"\n },\n {\n \"step\": 3,\n \"name\": \"public header\",\n \"ok\": true,\n \"detail\": \"185 bytes\"\n },\n {\n \"step\": 4,\n \"name\": \"header validation\",\n \"ok\": true,\n \"detail\": \"capsule_id=4286085c21ca34d1a71e649326a4a0f6 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1\"\n },\n {\n \"step\": 5,\n \"name\": \"sealed control structure\",\n \"ok\": true,\n \"detail\": \"one tlock stanza\"\n },\n {\n \"step\": 6,\n \"name\": \"payload structure\",\n \"ok\": true,\n \"detail\": \"one X25519 stanza\"\n },\n {\n \"step\": 7,\n \"name\": \"condition\",\n \"ok\": true,\n \"detail\": \"round 2000, unlock at 2023-08-23T16:49:24Z\"\n },\n {\n \"step\": 8,\n \"name\": \"tlock stanza\",\n \"ok\": true,\n \"detail\": \"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971\"\n }\n ]\n}\n"},
{"dkc":{"base":"time_only_extensions.dkc","edits":[[11,1,"95"],[137,28,"0581a3006d646174656b6579732e6e6f746501010246436172746173"],[165,10,""]]},"name":"a public note in the critical array","registry":"standard","view":"{\n \"file\": \"capsule.dkc\",\n \"format\": 1,\n \"capsule_id\": \"4286085c21ca34d1a71e649326a4a0f6\",\n \"datekey\": \"dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0\",\n \"profile\": \"datekeys:quicknet:v1\",\n \"round\": 2000,\n \"access_policy\": \"time_only\",\n \"valid\": false,\n \"error\": \"ERR_EXTENSION_CRITICAL_UNKNOWN\",\n \"checks\": [\n {\n \"step\": 1,\n \"name\": \"parse DKC1\",\n \"ok\": true,\n \"detail\": \"magic DKC1\"\n },\n {\n \"step\": 2,\n \"name\": \"prelude\",\n \"ok\": true,\n \"detail\": \"DKC1 v1, PUBLIC_HEADER_LEN=149, SEALED_CONTROL_LEN=482\"\n },\n {\n \"step\": 3,\n \"name\": \"public header\",\n \"ok\": true,\n \"detail\": \"149 bytes\"\n },\n {\n \"step\": 4,\n \"name\": \"header validation\",\n \"ok\": false,\n \"detail\": \"capsule: PUBLIC_HEADER: extension datekeys.note v1: known, but not registered for the critical_extensions of PUBLIC_HEADER: ERR_EXTENSION_CRITICAL_UNKNOWN\",\n \"error\": \"ERR_EXTENSION_CRITICAL_UNKNOWN\"\n }\n ]\n}\n"},
{"dkc":{"base":"time_only_extensions.dkc","edits":[[11,1,"a8"],[138,37,"82a3006d646174656b6579732e6e6f746501010246436172746173a3006b6f72672e657861"],[175,0,"6d706c650101024101"]]},"name":"every extension rejected","registry":"reject_all","view":"{\n \"file\": \"capsule.dkc\",\n \"format\": 1,\n \"capsule_id\": \"4286085c21ca34d1a71e649326a4a0f6\",\n \"datekey\": \"dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0\",\n \"profile\": \"datekeys:quicknet:v1\",\n \"round\": 2000,\n \"unlock_at\": \"2023-08-23T16:49:24Z\",\n \"access_policy\": \"time_only\",\n \"public_note\": \"Cartas\",\n \"valid\": true,\n \"checks\": [\n {\n \"step\": 1,\n \"name\": \"parse DKC1\",\n \"ok\": true,\n \"detail\": \"magic DKC1\"\n },\n {\n \"step\": 2,\n \"name\": \"prelude\",\n \"ok\": true,\n \"detail\": \"DKC1 v1, PUBLIC_HEADER_LEN=168, SEALED_CONTROL_LEN=482\"\n },\n {\n \"step\": 3,\n \"name\": \"public header\",\n \"ok\": true,\n \"detail\": \"168 bytes\"\n },\n {\n \"step\": 4,\n \"name\": \"header validation\",\n \"ok\": true,\n \"detail\": \"capsule_id=4286085c21ca34d1a71e649326a4a0f6 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1, 2 unusable noncritical extensions\"\n },\n {\n \"step\": 5,\n \"name\": \"sealed control structure\",\n \"ok\": true,\n \"detail\": \"one tlock stanza\"\n },\n {\n \"step\": 6,\n \"name\": \"payload structure\",\n \"ok\": true,\n \"detail\": \"one X25519 stanza\"\n },\n {\n \"step\": 7,\n \"name\": \"condition\",\n \"ok\": true,\n \"detail\": \"round 2000, unlock at 2023-08-23T16:49:24Z\"\n },\n {\n \"step\": 8,\n \"name\": \"tlock stanza\",\n \"ok\": true,\n \"detail\": \"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971\"\n }\n ]\n}\n"}
]
}

Powered by TurnKey Linux.