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/mutation_texts.json

226 lines
230 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
{
"spec": "0.13",
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/mutation_go_texts.go",
"description": "The text of the error of capsule.Open for every case of testdata/vectors/mutations.json, or ok for a capsule that opens, and its checks as [step, name, ok, detail, code]; go_error and go_step where Go and the corpus disagree. See the header of tool/mutation_go_texts.go.",
"cases": [
{"name":"PUBLIC_HEADER_A + SEALED_CONTROL_B","text":"capsule: header_binding does not match PRELUDE || PUBLIC_HEADER: ERR_HEADER_BINDING","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",false,"capsule: header_binding does not match PRELUDE || PUBLIC_HEADER: ERR_HEADER_BINDING","ERR_HEADER_BINDING"]]},
{"name":"SEALED_CONTROL_A + PAYLOAD_AGE_B","text":"capsule: PAYLOAD_AGE: agewrap: PAYLOAD_AGE is not encrypted to this control's R_PAYLOAD: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: agewrap: PAYLOAD_AGE is not encrypted to this control's R_PAYLOAD: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"DateKey A + release of round B","text":"provider: release for round 1001, expected 1000: ERR_ROUND_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1001 obtained",""],[10,"release verification",false,"provider: release for round 1001, expected 1000: ERR_ROUND_MISMATCH","ERR_ROUND_MISMATCH"]]},
{"name":"chain hash changed","text":"agewrap: tlock stanza chain hash \"abababababababababababababababababababababababababababababababab\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",false,"agewrap: tlock stanza chain hash \"abababababababababababababababababababababababababababababababab\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","ERR_PROFILE_MISMATCH"]]},
{"name":"version changed","text":"capsule: framing version 4: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: framing version 4: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"flags != 0","text":"capsule: flags 0x80, reserved 0x0000: ERR_INVALID_FLAGS","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: flags 0x80, reserved 0x0000: ERR_INVALID_FLAGS","ERR_INVALID_FLAGS"]]},
{"name":"reserved != 0","text":"capsule: flags 0x0, reserved 0x0001: ERR_INVALID_FLAGS","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: flags 0x0, reserved 0x0001: ERR_INVALID_FLAGS","ERR_INVALID_FLAGS"]]},
{"name":"payload truncated","text":"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"payload age modified","text":"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"control modified","text":"capsule: age: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"non-canonical dk1_ JSON","text":"capsule: PUBLIC_HEADER: datekey: not the canonical encoding dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0: ERR_DATEKEY_NON_CANONICAL","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=124, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"124 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: datekey: not the canonical encoding dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0: ERR_DATEKEY_NON_CANONICAL","ERR_DATEKEY_NON_CANONICAL"]]},
{"name":"unknown profile","text":"capsule: profile \"datekeys:evmnet:v1\" is not pinned: ERR_UNKNOWN_PROFILE","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=118, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"118 bytes",""],[4,"header validation",false,"capsule: profile \"datekeys:evmnet:v1\" is not pinned: ERR_UNKNOWN_PROFILE","ERR_UNKNOWN_PROFILE"]]},
{"name":"release of another round","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"access_policy=time_only with time_and_key structure","text":"capsule: time_only capsule seals an age file: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=646",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=448e134a13457c319cab7fceaf7ffa1f datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"capsule: time_only capsule seals an age file: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"access_policy=time_and_key with time_only structure","text":"capsule: time_and_key capsule does not seal an age file: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"capsule: time_and_key capsule does not seal an age file: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"extra stanza in OUTER_TIME_AGE","text":"capsule: OUTER_TIME_AGE must hold exactly one tlock stanza, found 2: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=544",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ac64a02dff47ec22aaf1a44b1a89605d datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",false,"capsule: OUTER_TIME_AGE must hold exactly one tlock stanza, found 2: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"extra stanza in PAYLOAD_AGE","text":"agewrap: PAYLOAD_AGE has 2 stanzas, want exactly one X25519 stanza: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=3f985af7af37ad62b40ec5ccc3c6b8d1 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",false,"agewrap: PAYLOAD_AGE has 2 stanzas, want exactly one X25519 stanza: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"non-X25519 stanza in INNER_ACCESS_AGE","text":"agewrap: INNER_ACCESS_AGE stanza 1 has type \"scrypt\", want \"X25519\": ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=726",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c800935c81d094a93d56b9fad957b18b datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"agewrap: INNER_ACCESS_AGE stanza 1 has type \"scrypt\", want \"X25519\": ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"tlock stanza round differs from DateKey.round","text":"agewrap: tlock stanza round \"1001\", DateKey round 1000: ERR_ROUND_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=08f94a0475441b20180762647ee71902 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",false,"agewrap: tlock stanza round \"1001\", DateKey round 1000: ERR_ROUND_MISMATCH","ERR_ROUND_MISMATCH"]]},
{"name":"tlock stanza chain hash differs from the pinned profile","text":"agewrap: tlock stanza chain hash \"dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=5d6090f141146d36ba274b96b44eb941 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",false,"agewrap: tlock stanza chain hash \"dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","ERR_PROFILE_MISMATCH"]]},
{"name":"extension data of a type other than bstr","text":"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": key 2: codec: offset 146: a text string where a byte string was expected: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=159, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"159 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": key 2: codec: offset 146: a text string where a byte string was expected: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"empty extension data (h'')","text":"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": data is present but empty; an extension without data omits key 2: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=147, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"147 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": data is present but empty; an extension without data omits key 2: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"65 extensions in one array","text":"capsule: PUBLIC_HEADER: key 6: extension: codec: offset 124: array of 65 items, at most 64: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=1424, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"1424 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension: codec: offset 124: array of 65 items, at most 64: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"tlock stanza U re-encoded with c0 + p","text":"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"tlock stanza U is the point at infinity","text":"capsule: age: agewrap: U of the tlock stanza is the point at infinity: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: U of the tlock stanza is the point at infinity: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"tlock stanza U with the infinity flag and a payload","text":"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"tlock stanza body of 127 bytes","text":"capsule: age: agewrap: tlock stanza body of 127 bytes, want 128: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=445",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: tlock stanza body of 127 bytes, want 128: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"tlock stanza body of 129 bytes","text":"capsule: age: agewrap: tlock stanza body of 129 bytes, want 128: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=447",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: tlock stanza body of 129 bytes, want 128: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"release signature re-encoded with x + p","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1004 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=250416bc1e6d8da84f5a69e47a9f66f2 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwNH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1004, unlock at 2023-08-23T15:59:36Z",""],[8,"tlock stanza",true,"round 1004, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1004 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1004 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"release signature is the point at infinity","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"release signature with the infinity flag and a payload","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"release signature negated","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"negated release signature and U re-encoded with c0 + p","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"magic","text":"capsule: ERR_INVALID_MAGIC","checks":[[1,"parse DKC1",false,"capsule: ERR_INVALID_MAGIC","ERR_INVALID_MAGIC"]]},
{"name":"a .dkk offered as a .dkc","text":"capsule: ERR_INVALID_MAGIC","checks":[[1,"parse DKC1",false,"capsule: ERR_INVALID_MAGIC","ERR_INVALID_MAGIC"]]},
{"name":"empty file","text":"capsule: ERR_INVALID_MAGIC","checks":[[1,"parse DKC1",false,"capsule: ERR_INVALID_MAGIC","ERR_INVALID_MAGIC"]]},
{"name":"truncated prelude","text":"capsule: truncated prelude: ERR_INTEGRITY","checks":[[1,"parse DKC1",false,"capsule: truncated prelude: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"PUBLIC_HEADER_LEN above the limit","text":"capsule: PUBLIC_HEADER_LEN 1048577 outside 1..1048576: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: PUBLIC_HEADER_LEN 1048577 outside 1..1048576: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"SEALED_CONTROL_LEN above the limit","text":"capsule: SEALED_CONTROL_LEN 67108865 outside 1..67108864: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: SEALED_CONTROL_LEN 67108865 outside 1..67108864: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"truncated inside SEALED_CONTROL","text":"capsule: truncated SEALED_CONTROL: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",false,"capsule: truncated SEALED_CONTROL: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"header schema version changed","text":"capsule: PUBLIC_HEADER: codec: datekeycap schema version 2, want 1: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: codec: datekeycap schema version 2, want 1: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"unknown key in PUBLIC_HEADER","text":"capsule: PUBLIC_HEADER: key 7 is not defined: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=123, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"123 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 7 is not defined: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"undefined access_policy","text":"capsule: PUBLIC_HEADER: key 4: access_policy 2 is not defined in V1: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 4: access_policy 2 is not defined in V1: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"access_policy 256 with a consistent header_binding","text":"capsule: PUBLIC_HEADER: key 4: access_policy 256 is not defined in V1: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=123, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"123 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 4: access_policy 256 is not defined in V1: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"access_policy 257 with a consistent header_binding","text":"capsule: PUBLIC_HEADER: key 4: access_policy 257 is not defined in V1: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=123, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"123 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 4: access_policy 257 is not defined in V1: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"unknown critical PUBLIC_HEADER extension","text":"capsule: PUBLIC_HEADER: extension org.example.must-understand v1: ERR_EXTENSION_CRITICAL_UNKNOWN","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=156, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"156 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: extension org.example.must-understand v1: ERR_EXTENSION_CRITICAL_UNKNOWN","ERR_EXTENSION_CRITICAL_UNKNOWN"]]},
{"name":"unknown critical CONTROL_CBOR extension","text":"capsule: CONTROL_CBOR: extension org.example.must-understand v1: ERR_EXTENSION_CRITICAL_UNKNOWN","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=481",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=6946e5bb3f531636f39c35aaa686a627 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: extension org.example.must-understand v1: ERR_EXTENSION_CRITICAL_UNKNOWN","ERR_EXTENSION_CRITICAL_UNKNOWN"]]},
{"name":"known critical PUBLIC_HEADER extension with invalid data","text":"capsule: PUBLIC_HEADER: extension org.example.must-understand v1: data: data 6b6f is not 6f6b: ERR_EXTENSION_DATA_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=160, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"160 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: extension org.example.must-understand v1: data: data 6b6f is not 6f6b: ERR_EXTENSION_DATA_INVALID","ERR_EXTENSION_DATA_INVALID"]]},
{"name":"known critical CONTROL_CBOR extension with invalid data","text":"capsule: CONTROL_CBOR: extension org.example.must-understand v1: data: data 6b6f is not 6f6b: ERR_EXTENSION_DATA_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=485",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=150c4bed590fa8b69b37b24fe7449e74 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: extension org.example.must-understand v1: data: data 6b6f is not 6f6b: ERR_EXTENSION_DATA_INVALID","ERR_EXTENSION_DATA_INVALID"]]},
{"name":"known critical .dkk extension with invalid data","text":"capsule: .dkk: extension org.example.must-understand v1: data: data 6b6f is not 6f6b: ERR_EXTENSION_DATA_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=646",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=448e134a13457c319cab7fceaf7ffa1f datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",false,"capsule: .dkk: extension org.example.must-understand v1: data: data 6b6f is not 6f6b: ERR_EXTENSION_DATA_INVALID","ERR_EXTENSION_DATA_INVALID"]]},
{"name":"extension_version above 2^32-1","text":"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": key 1: codec: offset 153: unsigned integer 4294967296 above 4294967295: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=153, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"153 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": key 1: codec: offset 153: unsigned integer 4294967296 above 4294967295: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"null extension data","text":"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": key 2: codec: offset 146: a float or simple value (initial byte 0xf6) is outside the CBOR profile: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=147, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"147 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": key 2: codec: offset 146: a float or simple value (initial byte 0xf6) is outside the CBOR profile: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"time_and_key without credentials","text":"capsule: time_and_key capsule and no identity or .dkk supplied: ERR_ACCESS_REQUIRED","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=646",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=448e134a13457c319cab7fceaf7ffa1f datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",false,"capsule: time_and_key capsule and no identity or .dkk supplied: ERR_ACCESS_REQUIRED","ERR_ACCESS_REQUIRED"]]},
{"name":".dkk of another capsule","text":"capsule: the .dkk is for capsule c75dfc8e9c576d1369910664df93693a, this is 448e134a13457c319cab7fceaf7ffa1f: ERR_ACCESS_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=646",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=448e134a13457c319cab7fceaf7ffa1f datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",false,"capsule: the .dkk is for capsule c75dfc8e9c576d1369910664df93693a, this is 448e134a13457c319cab7fceaf7ffa1f: ERR_ACCESS_INVALID","ERR_ACCESS_INVALID"]]},
{"name":"capsule_digest of the .dkk does not match","text":"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=646",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=448e134a13457c319cab7fceaf7ffa1f datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",false,"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","ERR_ACCESS_INVALID"]]},
{"name":"identity that is not a recipient","text":"capsule: age: agewrap: no supplied identity is a recipient of INNER_ACCESS_AGE: ERR_ACCESS_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=646",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=448e134a13457c319cab7fceaf7ffa1f datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_and_key: INNER_ACCESS_AGE with 1 X25519 stanzas",""],[13,"open access layer",false,"capsule: age: agewrap: no supplied identity is a recipient of INNER_ACCESS_AGE: ERR_ACCESS_INVALID","ERR_ACCESS_INVALID"]]},
{"name":"round not reached yet","text":"capsule: round 1000 is published at 2023-08-23T15:59:24Z, it is 2023-08-23T15:59:23Z: ERR_RELEASE_UNAVAILABLE","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",false,"capsule: round 1000 is published at 2023-08-23T15:59:24Z, it is 2023-08-23T15:59:23Z: ERR_RELEASE_UNAVAILABLE","ERR_RELEASE_UNAVAILABLE"]]},
{"name":"release source unavailable","text":"testkit: no release: ERR_RELEASE_UNAVAILABLE","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",false,"testkit: no release: ERR_RELEASE_UNAVAILABLE","ERR_RELEASE_UNAVAILABLE"]]},
{"name":"trailing data after PAYLOAD_AGE","text":"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"payload stanza body modified","text":"capsule: PAYLOAD_AGE: agewrap: PAYLOAD_AGE is not encrypted to this control's R_PAYLOAD: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: agewrap: PAYLOAD_AGE is not encrypted to this control's R_PAYLOAD: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"tlock round edited by a third party","text":"agewrap: tlock stanza round \"1001\", DateKey round 1000: ERR_ROUND_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",false,"agewrap: tlock stanza round \"1001\", DateKey round 1000: ERR_ROUND_MISMATCH","ERR_ROUND_MISMATCH"]]},
{"name":"empty registry","text":"capsule: profile \"datekeys:quicknet:v1\" is not pinned: ERR_UNKNOWN_PROFILE","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",false,"capsule: profile \"datekeys:quicknet:v1\" is not pinned: ERR_UNKNOWN_PROFILE","ERR_UNKNOWN_PROFILE"]]},
{"name":"time_only declared, time_and_key built by the creator","text":"capsule: time_only capsule seals an age file: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=646",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=238e2912d6448dce358dec034cc73984 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"capsule: time_only capsule seals an age file: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"time_and_key declared, time_only built by the creator","text":"capsule: time_and_key capsule does not seal an age file: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=a44c9b18fda29aea727f5398ecf967ce datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"capsule: time_and_key capsule does not seal an age file: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"two INNER_ACCESS_AGE stanzas for one recipient","text":"capsule: age: agewrap: one identity opens 2 INNER_ACCESS_AGE stanzas, want one per recipient: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=744",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=1d983beefec16c1a312696440735330c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_and_key: INNER_ACCESS_AGE with 2 X25519 stanzas",""],[13,"open access layer",false,"capsule: age: agewrap: one identity opens 2 INNER_ACCESS_AGE stanzas, want one per recipient: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 2: PUBLIC_HEADER_A + SEALED_CONTROL_B","text":"capsule: header_binding does not match PRELUDE || PUBLIC_HEADER: ERR_HEADER_BINDING","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",false,"capsule: header_binding does not match PRELUDE || PUBLIC_HEADER: ERR_HEADER_BINDING","ERR_HEADER_BINDING"]]},
{"name":"format 2: SEALED_CONTROL_A + PAYLOAD_AGE_B","text":"capsule: PAYLOAD_AGE: agewrap: PAYLOAD_AGE is not encrypted to this control's R_PAYLOAD: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 78000, padding reforzado, P = 79872",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: agewrap: PAYLOAD_AGE is not encrypted to this control's R_PAYLOAD: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 2: DateKey A + release of round B","text":"provider: release for round 1001, expected 1000: ERR_ROUND_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1001 obtained",""],[10,"release verification",false,"provider: release for round 1001, expected 1000: ERR_ROUND_MISMATCH","ERR_ROUND_MISMATCH"]]},
{"name":"format 2: chain hash changed","text":"agewrap: tlock stanza chain hash \"abababababababababababababababababababababababababababababababab\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",false,"agewrap: tlock stanza chain hash \"abababababababababababababababababababababababababababababababab\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","ERR_PROFILE_MISMATCH"]]},
{"name":"format 2: version changed","text":"capsule: framing version 4: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: framing version 4: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"format 2: flags != 0","text":"capsule: flags 0x80, reserved 0x0000: ERR_INVALID_FLAGS","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: flags 0x80, reserved 0x0000: ERR_INVALID_FLAGS","ERR_INVALID_FLAGS"]]},
{"name":"format 2: reserved != 0","text":"capsule: flags 0x0, reserved 0x0001: ERR_INVALID_FLAGS","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: flags 0x0, reserved 0x0001: ERR_INVALID_FLAGS","ERR_INVALID_FLAGS"]]},
{"name":"format 2: payload truncated","text":"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 78000, padding reforzado, P = 79872",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 2: payload age modified","text":"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 78000, padding reforzado, P = 79872",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 2: control modified","text":"capsule: age: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 2: non-canonical dk1_ JSON","text":"capsule: PUBLIC_HEADER: datekey: not the canonical encoding dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0: ERR_DATEKEY_NON_CANONICAL","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=124, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"124 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: datekey: not the canonical encoding dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0: ERR_DATEKEY_NON_CANONICAL","ERR_DATEKEY_NON_CANONICAL"]]},
{"name":"format 2: unknown profile","text":"capsule: profile \"datekeys:evmnet:v1\" is not pinned: ERR_UNKNOWN_PROFILE","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=118, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"118 bytes",""],[4,"header validation",false,"capsule: profile \"datekeys:evmnet:v1\" is not pinned: ERR_UNKNOWN_PROFILE","ERR_UNKNOWN_PROFILE"]]},
{"name":"format 2: release of another round","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 2: access_policy=time_only with time_and_key structure","text":"capsule: time_only capsule seals an age file: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2128",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=fe68d3b3bb59db0c14b7ef57d8d6cb5e datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"capsule: time_only capsule seals an age file: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 2: access_policy=time_and_key with time_only structure","text":"capsule: time_and_key capsule does not seal an age file: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"capsule: time_and_key capsule does not seal an age file: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 2: extra stanza in OUTER_TIME_AGE","text":"capsule: OUTER_TIME_AGE must hold exactly one tlock stanza, found 2: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=556",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=9667d509fc51ccede898d232ce74d47f datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",false,"capsule: OUTER_TIME_AGE must hold exactly one tlock stanza, found 2: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 2: extra stanza in PAYLOAD_AGE","text":"agewrap: PAYLOAD_AGE has 2 stanzas, want exactly one X25519 stanza: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=4938a3c96f0d6e9a5e0d81dc533705c2 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",false,"agewrap: PAYLOAD_AGE has 2 stanzas, want exactly one X25519 stanza: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 2: non-X25519 stanza in INNER_ACCESS_AGE","text":"agewrap: INNER_ACCESS_AGE stanza 15 has type \"scrypt\", want \"X25519\": ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2110",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=4100a310fc7101779e8af7d1c91669c6 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"agewrap: INNER_ACCESS_AGE stanza 15 has type \"scrypt\", want \"X25519\": ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 2: tlock stanza round differs from DateKey.round","text":"agewrap: tlock stanza round \"1001\", DateKey round 1000: ERR_ROUND_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=218abdaca3c0fec6e495e75ebd783d80 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",false,"agewrap: tlock stanza round \"1001\", DateKey round 1000: ERR_ROUND_MISMATCH","ERR_ROUND_MISMATCH"]]},
{"name":"format 2: tlock stanza chain hash differs from the pinned profile","text":"agewrap: tlock stanza chain hash \"dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=1a9e26924b25a9b70ecd24fa769672d8 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",false,"agewrap: tlock stanza chain hash \"dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","ERR_PROFILE_MISMATCH"]]},
{"name":"format 2: extension data of a type other than bstr","text":"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": key 2: codec: offset 146: a text string where a byte string was expected: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=159, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"159 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": key 2: codec: offset 146: a text string where a byte string was expected: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"format 2: empty extension data (h'')","text":"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": data is present but empty; an extension without data omits key 2: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=147, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"147 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": data is present but empty; an extension without data omits key 2: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"format 2: 65 extensions in one array","text":"capsule: PUBLIC_HEADER: key 6: extension: codec: offset 124: array of 65 items, at most 64: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=1424, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"1424 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension: codec: offset 124: array of 65 items, at most 64: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"format 2: tlock stanza U re-encoded with c0 + p","text":"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 2: tlock stanza U is the point at infinity","text":"capsule: age: agewrap: U of the tlock stanza is the point at infinity: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: U of the tlock stanza is the point at infinity: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 2: tlock stanza U with the infinity flag and a payload","text":"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 2: tlock stanza body of 127 bytes","text":"capsule: age: agewrap: tlock stanza body of 127 bytes, want 128: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=457",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: tlock stanza body of 127 bytes, want 128: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 2: tlock stanza body of 129 bytes","text":"capsule: age: agewrap: tlock stanza body of 129 bytes, want 128: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=459",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: tlock stanza body of 129 bytes, want 128: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 2: release signature re-encoded with x + p","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1004 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=dbb9bc102bb15061d58e9c17d302e06f datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwNH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1004, unlock at 2023-08-23T15:59:36Z",""],[8,"tlock stanza",true,"round 1004, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1004 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1004 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 2: release signature is the point at infinity","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 2: release signature with the infinity flag and a payload","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 2: release signature negated","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 2: negated release signature and U re-encoded with c0 + p","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 2 time_only relabeled format 3","text":"capsule: CONTROL_CBOR: codec: datekeys-control schema version 2, want 3: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: codec: datekeys-control schema version 2, want 3: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"format 1 time_only relabeled format 2","text":"capsule: CONTROL_CBOR: codec: datekeys-control schema version 1, want 2: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=446",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ad4d676812b134ff8a3de263f77018b4 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: codec: datekeys-control schema version 1, want 2: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"format 1 time_and_key with one stanza relabeled format 2, with the identity","text":"agewrap: INNER_ACCESS_AGE has 1 stanzas, want exactly 16: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=646",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=448e134a13457c319cab7fceaf7ffa1f datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"agewrap: INNER_ACCESS_AGE has 1 stanzas, want exactly 16: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 2 time_only relabeled format 1","text":"capsule: CONTROL_CBOR: codec: datekeys-control schema version 2, want 1: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: codec: datekeys-control schema version 2, want 1: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"format 2 time_and_key relabeled format 1, with the identity","text":"capsule: CONTROL_CBOR: codec: datekeys-control schema version 2, want 1: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2128",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=fe68d3b3bb59db0c14b7ef57d8d6cb5e datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_and_key: INNER_ACCESS_AGE with 16 X25519 stanzas",""],[13,"open access layer",true,"identity matched exactly one stanza",""],[14,"control",false,"capsule: CONTROL_CBOR: codec: datekeys-control schema version 2, want 1: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"INNER_ACCESS_AGE with 15 stanzas","text":"agewrap: INNER_ACCESS_AGE has 15 stanzas, want exactly 16: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2030",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=fe68d3b3bb59db0c14b7ef57d8d6cb5e datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"agewrap: INNER_ACCESS_AGE has 15 stanzas, want exactly 16: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"INNER_ACCESS_AGE with 17 stanzas","text":"agewrap: INNER_ACCESS_AGE has 17 stanzas, want exactly 16: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2226",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=fe68d3b3bb59db0c14b7ef57d8d6cb5e datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"agewrap: INNER_ACCESS_AGE has 17 stanzas, want exactly 16: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"16 stanzas, two for one recipient, and the identity of that recipient","text":"capsule: age: agewrap: one identity opens 2 INNER_ACCESS_AGE stanzas, want one per recipient: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2128",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=fe68d3b3bb59db0c14b7ef57d8d6cb5e datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_and_key: INNER_ACCESS_AGE with 16 X25519 stanzas",""],[13,"open access layer",false,"capsule: age: agewrap: one identity opens 2 INNER_ACCESS_AGE stanzas, want one per recipient: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"identity that is not a recipient of any of the 16","text":"capsule: age: agewrap: no supplied identity is a recipient of INNER_ACCESS_AGE: ERR_ACCESS_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2128",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=fe68d3b3bb59db0c14b7ef57d8d6cb5e datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_and_key: INNER_ACCESS_AGE with 16 X25519 stanzas",""],[13,"open access layer",false,"capsule: age: agewrap: no supplied identity is a recipient of INNER_ACCESS_AGE: ERR_ACCESS_INVALID","ERR_ACCESS_INVALID"]]},
{"name":"control of schema version 2 without key 6","text":"capsule: CONTROL_CBOR: key 6 is missing: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=448",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: key 6 is missing: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"control of schema version 2 without key 7","text":"capsule: CONTROL_CBOR: key 7 is missing: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=456",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: key 7 is missing: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"padding code 0","text":"capsule: CONTROL_CBOR: key 7: padding code 0 is not defined: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: key 7: padding code 0 is not defined: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"padding code 3","text":"capsule: CONTROL_CBOR: key 7: padding code 3 is not defined: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: key 7: padding code 3 is not defined: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"payload_length L_MAX + 1","text":"capsule: CONTROL_CBOR: key 6: payload_length 8936830510563329 exceeds L_MAX = 8936830510563328: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: key 6: payload_length 8936830510563329 exceeds L_MAX = 8936830510563328: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"payload_length of 7 bytes","text":"capsule: CONTROL_CBOR: key 6: codec: offset 93: a byte string of 7 bytes outside 8..8: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=457",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: key 6: codec: offset 93: a byte string of 7 bytes outside 8..8: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"payload_length of 9 bytes","text":"capsule: CONTROL_CBOR: key 6: codec: offset 93: a byte string of 9 bytes outside 8..8: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=459",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: key 6: codec: offset 93: a byte string of 9 bytes outside 8..8: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"payload_length as an unsigned integer","text":"capsule: CONTROL_CBOR: key 6: codec: offset 92: an unsigned integer where a byte string was expected: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=454",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: key 6: codec: offset 92: an unsigned integer where a byte string was expected: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"last padding byte not zero","text":"capsule: PAYLOAD_AGE: byte 255 of the plaintext is padding and is not zero: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=159, SEALED_CONTROL_LEN=494",""],[3,"public header",true,"159 bytes",""],[4,"header validation",true,"capsule_id=3ab2c06d482609a9c7ae92f672599883 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 2000, unlock at 2023-08-23T16:49:24Z",""],[8,"tlock stanza",true,"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 2000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 34, padding reforzado, P = 256",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: byte 255 of the plaintext is padding and is not zero: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"payload plaintext of P - 1 bytes","text":"capsule: PAYLOAD_AGE: the plaintext is 255 bytes, shorter than P = 256: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=159, SEALED_CONTROL_LEN=494",""],[3,"public header",true,"159 bytes",""],[4,"header validation",true,"capsule_id=3ab2c06d482609a9c7ae92f672599883 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 2000, unlock at 2023-08-23T16:49:24Z",""],[8,"tlock stanza",true,"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 2000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 34, padding reforzado, P = 256",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the plaintext is 255 bytes, shorter than P = 256: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"payload plaintext of P + 256 bytes","text":"capsule: PAYLOAD_AGE: the plaintext is longer than P = 256: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=159, SEALED_CONTROL_LEN=494",""],[3,"public header",true,"159 bytes",""],[4,"header validation",true,"capsule_id=3ab2c06d482609a9c7ae92f672599883 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 2000, unlock at 2023-08-23T16:49:24Z",""],[8,"tlock stanza",true,"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 2000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 34, padding reforzado, P = 256",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the plaintext is longer than P = 256: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"payload plaintext without padding, of L bytes","text":"capsule: PAYLOAD_AGE: the plaintext is 34 bytes, shorter than P = 256: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=159, SEALED_CONTROL_LEN=494",""],[3,"public header",true,"159 bytes",""],[4,"header validation",true,"capsule_id=3ab2c06d482609a9c7ae92f672599883 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MjAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 2000, unlock at 2023-08-23T16:49:24Z",""],[8,"tlock stanza",true,"round 2000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 2000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 34, padding reforzado, P = 256",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the plaintext is 34 bytes, shorter than P = 256: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"padding code 2 changed to 1, with L = 78000","text":"capsule: PAYLOAD_AGE: the plaintext is longer than P = 78080: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 78000, padding bloque256, P = 78080",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the plaintext is longer than P = 78080: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"payload_length L - 1, the last byte of the content not zero","text":"capsule: PAYLOAD_AGE: byte 77999 of the plaintext is padding and is not zero: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=c8cfc53d45c879da916edddf71f3bddd datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 77999, padding reforzado, P = 79872",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: byte 77999 of the plaintext is padding and is not zero: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 1 time_and_key with one stanza relabeled format 2, with the .dkk","text":"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=646",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=448e134a13457c319cab7fceaf7ffa1f datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",false,"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","ERR_ACCESS_INVALID"]]},
{"name":"format 2 time_and_key relabeled format 1, with the .dkk","text":"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2128",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=fe68d3b3bb59db0c14b7ef57d8d6cb5e datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",false,"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","ERR_ACCESS_INVALID"]]},
{"name":"INNER_ACCESS_AGE with 15 stanzas, with the .dkk","text":"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2030",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=fe68d3b3bb59db0c14b7ef57d8d6cb5e datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",false,"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","ERR_ACCESS_INVALID"]]},
{"name":"INNER_ACCESS_AGE with 17 stanzas, with the .dkk","text":"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2226",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=fe68d3b3bb59db0c14b7ef57d8d6cb5e datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",false,"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","ERR_ACCESS_INVALID"]]},
{"name":"16 stanzas, two for one recipient, with the .dkk","text":"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2128",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=fe68d3b3bb59db0c14b7ef57d8d6cb5e datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",false,"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","ERR_ACCESS_INVALID"]]},
{"name":"format 3: PUBLIC_HEADER_A + SEALED_CONTROL_B","text":"capsule: header_binding does not match PRELUDE || PUBLIC_HEADER: ERR_HEADER_BINDING","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",false,"capsule: header_binding does not match PRELUDE || PUBLIC_HEADER: ERR_HEADER_BINDING","ERR_HEADER_BINDING"]]},
{"name":"format 3: SEALED_CONTROL_A + PAYLOAD_AGE_B","text":"capsule: PAYLOAD_AGE: agewrap: PAYLOAD_AGE is not encrypted to this control's R_PAYLOAD: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: agewrap: PAYLOAD_AGE is not encrypted to this control's R_PAYLOAD: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 3: DateKey A + release of round B","text":"provider: release for round 1001, expected 1000: ERR_ROUND_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1001 obtained",""],[10,"release verification",false,"provider: release for round 1001, expected 1000: ERR_ROUND_MISMATCH","ERR_ROUND_MISMATCH"]]},
{"name":"format 3: chain hash changed","text":"agewrap: tlock stanza chain hash \"abababababababababababababababababababababababababababababababab\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",false,"agewrap: tlock stanza chain hash \"abababababababababababababababababababababababababababababababab\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","ERR_PROFILE_MISMATCH"]]},
{"name":"format 3: version changed","text":"capsule: framing version 4: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: framing version 4: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"format 3: flags != 0","text":"capsule: flags 0x80, reserved 0x0000: ERR_INVALID_FLAGS","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: flags 0x80, reserved 0x0000: ERR_INVALID_FLAGS","ERR_INVALID_FLAGS"]]},
{"name":"format 3: reserved != 0","text":"capsule: flags 0x0, reserved 0x0001: ERR_INVALID_FLAGS","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",false,"capsule: flags 0x0, reserved 0x0001: ERR_INVALID_FLAGS","ERR_INVALID_FLAGS"]]},
{"name":"format 3: payload truncated","text":"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 3: payload age modified","text":"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 3: control modified","text":"capsule: age: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 3: non-canonical dk1_ JSON","text":"capsule: PUBLIC_HEADER: datekey: not the canonical encoding dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0: ERR_DATEKEY_NON_CANONICAL","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=124, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"124 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: datekey: not the canonical encoding dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0: ERR_DATEKEY_NON_CANONICAL","ERR_DATEKEY_NON_CANONICAL"]]},
{"name":"format 3: unknown profile","text":"capsule: profile \"datekeys:evmnet:v1\" is not pinned: ERR_UNKNOWN_PROFILE","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=118, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"118 bytes",""],[4,"header validation",false,"capsule: profile \"datekeys:evmnet:v1\" is not pinned: ERR_UNKNOWN_PROFILE","ERR_UNKNOWN_PROFILE"]]},
{"name":"format 3: release of another round","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 3: access_policy=time_only with time_and_key structure","text":"capsule: time_only capsule seals an age file: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2128",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=29737cb54ad5310734ecf20720c2d317 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"capsule: time_only capsule seals an age file: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 3: access_policy=time_and_key with time_only structure","text":"capsule: time_and_key capsule does not seal an age file: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"capsule: time_and_key capsule does not seal an age file: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 3: extra stanza in OUTER_TIME_AGE","text":"capsule: OUTER_TIME_AGE must hold exactly one tlock stanza, found 2: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=556",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=3da4aa192170d6e6a84caf8d1b89665d datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",false,"capsule: OUTER_TIME_AGE must hold exactly one tlock stanza, found 2: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 3: extra stanza in PAYLOAD_AGE","text":"agewrap: PAYLOAD_AGE has 2 stanzas, want exactly one X25519 stanza: ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=0a1312a462cba3721a98b38f2caebdd8 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",false,"agewrap: PAYLOAD_AGE has 2 stanzas, want exactly one X25519 stanza: ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 3: non-X25519 stanza in INNER_ACCESS_AGE","text":"agewrap: INNER_ACCESS_AGE stanza 15 has type \"scrypt\", want \"X25519\": ERR_POLICY_STRUCTURE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2110",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=d9b19f485bc3d438628e0ad1cdf53ce5 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",false,"agewrap: INNER_ACCESS_AGE stanza 15 has type \"scrypt\", want \"X25519\": ERR_POLICY_STRUCTURE_MISMATCH","ERR_POLICY_STRUCTURE_MISMATCH"]]},
{"name":"format 3: tlock stanza round differs from DateKey.round","text":"agewrap: tlock stanza round \"1001\", DateKey round 1000: ERR_ROUND_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=16def2d8ead91535dac7a89d334e5bee datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",false,"agewrap: tlock stanza round \"1001\", DateKey round 1000: ERR_ROUND_MISMATCH","ERR_ROUND_MISMATCH"]]},
{"name":"format 3: tlock stanza chain hash differs from the pinned profile","text":"agewrap: tlock stanza chain hash \"dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=837d8abe415bf5784ef7d568f2fa71cb datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",false,"agewrap: tlock stanza chain hash \"dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493\", pinned profile datekeys:quicknet:v1 uses 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH","ERR_PROFILE_MISMATCH"]]},
{"name":"format 3: extension data of a type other than bstr","text":"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": key 2: codec: offset 146: a text string where a byte string was expected: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=159, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"159 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": key 2: codec: offset 146: a text string where a byte string was expected: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"format 3: empty extension data (h'')","text":"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": data is present but empty; an extension without data omits key 2: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=147, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"147 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension \"org.example.label\": data is present but empty; an extension without data omits key 2: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"format 3: 65 extensions in one array","text":"capsule: PUBLIC_HEADER: key 6: extension: codec: offset 124: array of 65 items, at most 64: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=1424, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"1424 bytes",""],[4,"header validation",false,"capsule: PUBLIC_HEADER: key 6: extension: codec: offset 124: array of 65 items, at most 64: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"format 3: tlock stanza U re-encoded with c0 + p","text":"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 3: tlock stanza U is the point at infinity","text":"capsule: age: agewrap: U of the tlock stanza is the point at infinity: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: U of the tlock stanza is the point at infinity: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 3: tlock stanza U with the infinity flag and a payload","text":"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: U of the tlock stanza is not the canonical encoding of a point of the key group: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 3: tlock stanza body of 127 bytes","text":"capsule: age: agewrap: tlock stanza body of 127 bytes, want 128: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=457",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: tlock stanza body of 127 bytes, want 128: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 3: tlock stanza body of 129 bytes","text":"capsule: age: agewrap: tlock stanza body of 129 bytes, want 128: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=459",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",false,"capsule: age: agewrap: tlock stanza body of 129 bytes, want 128: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"format 3: release signature re-encoded with x + p","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1004 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=6134b00a1f901953021415cdee365c49 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwNH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1004, unlock at 2023-08-23T15:59:36Z",""],[8,"tlock stanza",true,"round 1004, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1004 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1004 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 3: release signature is the point at infinity","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 3: release signature with the infinity flag and a payload","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 3: release signature negated","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 3: negated release signature and U re-encoded with c0 + p","text":"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",false,"provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID","ERR_RELEASE_INVALID"]]},
{"name":"format 3 time_only relabeled format 2","text":"capsule: CONTROL_CBOR: codec: datekeys-control schema version 3, want 2: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: codec: datekeys-control schema version 3, want 2: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"AREA_LEN 0","text":"capsule: BODY: AREA_LEN 0 is not a multiple of 512 from 512 to 65536: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: AREA_LEN 0 is not a multiple of 512 from 512 to 65536: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"AREA_LEN 511","text":"capsule: BODY: AREA_LEN 511 is not a multiple of 512 from 512 to 65536: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: AREA_LEN 511 is not a multiple of 512 from 512 to 65536: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"AREA_LEN 513","text":"capsule: BODY: AREA_LEN 513 is not a multiple of 512 from 512 to 65536: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: AREA_LEN 513 is not a multiple of 512 from 512 to 65536: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"AREA_LEN 66048","text":"capsule: BODY: AREA_LEN 66048 is not a multiple of 512 from 512 to 65536: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: AREA_LEN 66048 is not a multiple of 512 from 512 to 65536: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"SECURITY_LEN 0","text":"capsule: BODY: SECURITY_LEN 0 is not from 1 to AREA_LEN = 512: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: SECURITY_LEN 0 is not from 1 to AREA_LEN = 512: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"SECURITY_LEN 513, larger than AREA_LEN","text":"capsule: BODY: SECURITY_LEN 513 is not from 1 to AREA_LEN = 512: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: SECURITY_LEN 513 is not from 1 to AREA_LEN = 512: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"HEAD_LEN 0","text":"capsule: BODY: HEAD_LEN 0 is not from 1 to 16777216: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: HEAD_LEN 0 is not from 1 to 16777216: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"HEAD_LEN 2^24 + 1","text":"capsule: BODY: HEAD_LEN 16777217 is not from 1 to 16777216: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: HEAD_LEN 16777217 is not from 1 to 16777216: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"12 + AREA_LEN + HEAD_LEN = L + 1","text":"capsule: BODY: the frame, the area of 512 bytes and the head of 136 bytes exceed L = 659: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: the frame, the area of 512 bytes and the head of 136 bytes exceed L = 659: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"L < 12: 11","text":"capsule: BODY: L = 11 is shorter than the frame of 12 bytes: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 11, padding reforzado, P = 256",""],[17,"open payload",false,"capsule: BODY: L = 11 is shorter than the frame of 12 bytes: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"a byte of the area not zero","text":"capsule: BODY: byte 511 of the security area is not zero: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: byte 511 of the security area is not zero: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"head of version 2","text":"capsule: head: codec: datekeys-head schema version 2, want 1: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: codec: datekeys-head schema version 2, want 1: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"head of another type tag","text":"capsule: head: codec: type \"datekeys-heaD\", want \"datekeys-head\": ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: codec: type \"datekeys-heaD\", want \"datekeys-head\": ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"head with a byte more within HEAD_LEN","text":"capsule: head: codec: offset 113: 1 trailing bytes: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 660, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: codec: offset 113: 1 trailing bytes: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"paths b and a, in that order","text":"capsule: head: key 5: file 2: R8: the path is not after the path of file 1 in byte order: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 691, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: key 5: file 2: R8: the path is not after the path of file 1 in byte order: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"paths b/.. and a, in that order","text":"capsule: head: key 5: file 2: R8: the path is not after the path of file 1 in byte order: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 694, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: key 5: file 2: R8: the path is not after the path of file 1 in byte order: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"path of 1025 bytes","text":"capsule: head: key 5: file 1: key 0: codec: offset 60: a text string of 1025 bytes outside 0..1024: ERR_NON_CANONICAL_CBOR","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 1678, padding reforzado, P = 1792",""],[17,"open payload",false,"capsule: head: key 5: file 1: key 0: codec: offset 60: a text string of 1025 bytes outside 0..1024: ERR_NON_CANONICAL_CBOR","ERR_NON_CANONICAL_CBOR"]]},
{"name":"path ..","text":"capsule: head: file 1: R3: segment 1: the segment is two dots: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 653, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R3: segment 1: the segment is two dots: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"path /a","text":"capsule: head: file 1: R2: segment 1 is empty: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 653, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R2: segment 1 is empty: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"paths A.txt and a.txt","text":"capsule: head: R7: path 2 collides with path 1 in segment 1: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 699, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: R7: path 2 collides with path 1 in segment 1: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"paths ab and a, U+200C, b","text":"capsule: head: R7: path 2 collides with path 1 in segment 1: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 696, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: R7: path 2 collides with path 1 in segment 1: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"path CON.txt","text":"capsule: head: file 1: R6: segment 1: CON is a reserved device name: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 658, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R6: segment 1: CON is a reserved device name: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"path CON.txt in full-width forms","text":"capsule: head: file 1: R6c: segment 1: code page 874 maps the segment to one that breaks R6: CON is a reserved device name: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 664, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R6c: segment 1: code page 874 maps the segment to one that breaks R6: CON is a reserved device name: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"path ABCDEF~1","text":"capsule: head: file 1: R6b: segment 1: the segment has the form of an 8.3 alias: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R6b: segment 1: the segment has the form of an 8.3 alias: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"path with U+202E","text":"capsule: head: file 1: R4: segment 1: invisible U+202E: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 660, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R4: segment 1: invisible U+202E: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"path .datekeys-x","text":"capsule: head: file 1: R10: the first segment starts with \".datekeys-\": ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 662, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R10: the first segment starts with \".datekeys-\": ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"comment with U+202E","text":"capsule: head: comment: text: bidirectional control U+202E: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 666, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: comment: text: bidirectional control U+202E: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"path a.","text":"capsule: head: file 1: R5: segment 1: the segment ends with '.': ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 653, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R5: segment 1: the segment ends with '.': ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"paths A and a/b","text":"capsule: head: R7: path 2 collides with path 1 in segment 1: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 693, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: R7: path 2 collides with path 1 in segment 1: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"65536 implicit folders","text":"capsule: head: R9: 65536 folders, more than 65535: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 235309, padding reforzado, P = 237568",""],[17,"open payload",false,"capsule: head: R9: 65536 folders, more than 65535: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"declared author with LF","text":"capsule: head: declared author: text: control U+000A in the declared author: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 671, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: declared author: text: control U+000A in the declared author: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"start of the first entry not 0","text":"capsule: head: file 1: start 1 is not 0, the end of the file before: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: start 1 is not 0, the end of the file before: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"end - start not size","text":"capsule: head: file 1: from start 0 to end 21 is not the size 22: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: from start 0 to end 21 is not the size 22: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"path a followed by VS16","text":"capsule: head: file 1: R4b: segment 1: U+FE0F is not part of an emoji variation sequence: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 655, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R4b: segment 1: U+FE0F is not part of an emoji variation sequence: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"path with two ZWJ in a row","text":"capsule: head: file 1: R4b: segment 1: U+200D right after U+200D: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R4b: segment 1: U+200D right after U+200D: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"comment with the tag U+E0041","text":"capsule: head: comment: text: invisible U+E0041: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 669, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: comment: text: invisible U+E0041: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"comment with the variation selector VS17","text":"capsule: head: comment: text: invisible U+E0100: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 669, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: comment: text: invisible U+E0100: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"start of an entry not the end of the one before","text":"capsule: head: file 2: start 12 is not 11, the end of the file before: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 691, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 2: start 12 is not 11, the end of the file before: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"end of the last file not C","text":"capsule: BODY: the files end at byte 21 of a content of 22 bytes: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: BODY: the files end at byte 21 of a content of 22 bytes: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"a byte of a file changed","text":"capsule: PAYLOAD_AGE: file 1: its SHA-256 is not the one of the head: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: file 1: its SHA-256 is not the one of the head: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"path .. and a padding byte not zero","text":"capsule: head: file 1: R3: segment 1: the segment is two dots: ERR_HEAD_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 653, padding reforzado, P = 768",""],[17,"open payload",false,"capsule: head: file 1: R3: segment 1: the segment is two dots: ERR_HEAD_INVALID","ERR_HEAD_INVALID"]]},
{"name":"path .. and the next STREAM chunk corrupt","text":"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=091119676ec081409c666846153ba7eb datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMX0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1001, unlock at 2023-08-23T15:59:27Z",""],[8,"tlock stanza",true,"round 1001, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1001 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 84078, padding reforzado, P = 86016",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"path .. and a cut right after its chunk","text":"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=091119676ec081409c666846153ba7eb datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMX0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1001, unlock at 2023-08-23T15:59:27Z",""],[8,"tlock stanza",true,"round 1001, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1001 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 84078, padding reforzado, P = 86016",""],[17,"open payload",false,"capsule: PAYLOAD_AGE: the age payload is truncated, has trailing data or fails STREAM authentication: ERR_INTEGRITY","ERR_INTEGRITY"]]},
{"name":"security of version 2 opens with the verdict X","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",true,"payload authenticated; BODY of 659 bytes, 1 files, area of 512 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"a signature of alg 4294967295 opens with the verdict F1","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",true,"payload authenticated; BODY of 659 bytes, 1 files, area of 512 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"a signature of alg 1 that does not verify opens with the verdict F2","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",true,"payload authenticated; BODY of 659 bytes, 1 files, area of 512 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"a seal of seal_type 4294967295 opens with the verdict S1","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 659, padding reforzado, P = 768",""],[17,"open payload",true,"payload authenticated; BODY of 659 bytes, 1 files, area of 512 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"the signature of alg 1 altered opens with the verdict F2","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=681476c1bfa81dd12fec810ee44fe7f7 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 32915, padding reforzado, P = 34816",""],[17,"open payload",true,"payload authenticated; BODY of 32915 bytes, 1 files, area of 32768 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"the signature of alg 1 removed opens with the verdict F0","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=681476c1bfa81dd12fec810ee44fe7f7 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 32915, padding reforzado, P = 34816",""],[17,"open payload",true,"payload authenticated; BODY of 32915 bytes, 1 files, area of 32768 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"the signature of alg 1 made again with another key opens with the verdict F4 of that key","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=681476c1bfa81dd12fec810ee44fe7f7 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 32915, padding reforzado, P = 34816",""],[17,"open payload",true,"payload authenticated; BODY of 32915 bytes, 1 files, area of 32768 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"the signature of alg 1 transplanted to another capsule opens with the verdict F2","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=0cced8e8b035d6dd70f39923b407a96c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 32915, padding reforzado, P = 34816",""],[17,"open payload",true,"payload authenticated; BODY of 32915 bytes, 1 files, area of 32768 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"a key of 31 bytes in a signature of alg 1 opens with the verdict F1","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=681476c1bfa81dd12fec810ee44fe7f7 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 32915, padding reforzado, P = 34816",""],[17,"open payload",true,"payload authenticated; BODY of 32915 bytes, 1 files, area of 32768 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"a signature of 65 bytes of alg 1 opens with the verdict F1","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=681476c1bfa81dd12fec810ee44fe7f7 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 32915, padding reforzado, P = 34816",""],[17,"open payload",true,"payload authenticated; BODY of 32915 bytes, 1 files, area of 32768 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"the area widened to 64 KiB after signing opens with the verdict F4 and the same AUTHOR_MESSAGE","text":"ok","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=681476c1bfa81dd12fec810ee44fe7f7 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",true,"matches",""],[16,"payload identity",true,"I_PAYLOAD recovered; L = 65683, padding reforzado, P = 67584",""],[17,"open payload",true,"payload authenticated; BODY of 65683 bytes, 1 files, area of 65536 bytes",""],[18,"commit",true,"1 files",""]]},
{"name":"the public note changed in PUBLIC_HEADER","text":"capsule: header_binding does not match PRELUDE || PUBLIC_HEADER: ERR_HEADER_BINDING","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v3, PUBLIC_HEADER_LEN=169, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"169 bytes",""],[4,"header validation",true,"capsule_id=1999a39e1beae60b2fc9b157d11dab5a datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",true,"canonical CONTROL_CBOR",""],[15,"header binding",false,"capsule: header_binding does not match PRELUDE || PUBLIC_HEADER: ERR_HEADER_BINDING","ERR_HEADER_BINDING"]]},
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
{"name":"format 3 time_only relabeled format 1","text":"capsule: CONTROL_CBOR: codec: datekeys-control schema version 3, want 1: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v1, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=458",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=ff23599acbe9b0a742792dcb7cb1bc4c datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_only profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_only: CONTROL_CBOR sealed directly",""],[14,"control",false,"capsule: CONTROL_CBOR: codec: datekeys-control schema version 3, want 1: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"format 3 time_and_key relabeled format 2, with the identity","text":"capsule: CONTROL_CBOR: codec: datekeys-control schema version 3, want 2: ERR_UNSUPPORTED_VERSION","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2128",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=29737cb54ad5310734ecf20720c2d317 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",true,"1 identities to try",""],[9,"release",true,"round 1000 obtained",""],[10,"release verification",true,"BLS signature valid under the pinned key",""],[11,"open sealed control",true,"one tlock stanza, header MAC valid",""],[12,"policy structure",true,"time_and_key: INNER_ACCESS_AGE with 16 X25519 stanzas",""],[13,"open access layer",true,"identity matched exactly one stanza",""],[14,"control",false,"capsule: CONTROL_CBOR: codec: datekeys-control schema version 3, want 2: ERR_UNSUPPORTED_VERSION","ERR_UNSUPPORTED_VERSION"]]},
{"name":"format 3 time_and_key relabeled format 2, with the .dkk","text":"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","checks":[[1,"parse DKC1",true,"magic DKC1",""],[2,"prelude",true,"DKC1 v2, PUBLIC_HEADER_LEN=121, SEALED_CONTROL_LEN=2128",""],[3,"public header",true,"121 bytes",""],[4,"header validation",true,"capsule_id=29737cb54ad5310734ecf20720c2d317 datekey=dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0 policy=time_and_key profile=datekeys:quicknet:v1",""],[5,"sealed control structure",true,"one tlock stanza",""],[6,"payload structure",true,"one X25519 stanza",""],[7,"condition",true,"round 1000, unlock at 2023-08-23T15:59:24Z",""],[8,"tlock stanza",true,"round 1000, chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",""],[9,"access credential",false,"capsule: the .dkk capsule_digest does not match this .dkc: ERR_ACCESS_INVALID","ERR_ACCESS_INVALID"]]}
]
}

Powered by TurnKey Linux.