Format 3, step 6b: the nine fixtures of format 3
The fixtures of spec 67 for format 3, each with its record, its BODY,
its inspect output and, for time_and_key, its .dkk:
- format3_single, format3_tree (five files in three folders, one over
two STREAM chunks, one without mtime, a comment and a declared
author), format3_comment_only (no files; a TAB in the comment),
format3_bloque256 and format3_time_and_key_portable, written with
EncryptFiles;
- format3_area_1024, format3_security_v2 (verdict X),
format3_signature_unsupported (an author-signature of alg 1 with a
random key of 32 bytes and a random signature of 64: F1) and
format3_seal_unsupported (that and a seal of seal_type 1: F1 and S1),
which only a generator of test vectors writes (62.1 rule 13), built
with testkit.Build.
The record of a format 3 fixture adds the area, SECURITY_CBOR,
HEAD_CBOR, the salt, the comment, the declared author, the head
extensions, the offset of CONTENT in BODY, each file with its layout,
SHA-256 and mtime, and the verdicts with their lines; its plaintext
file is BODY. The generator writes, then recovers every value by
opening layer by layer for the three formats alike, and refreshes the
records of format 3 through a Sink.
Tests: the conformance test checks BODY, the head, security and every
file, and opens through a MemorySink; the .dkk tests take the .dkk of
formats 2 and 3 too (spec 68); the CLI decrypts five of the fixtures
into folders; the control fuzz target decodes with the three schema
versions. The differential corpus gains two bases, format3_single and
format3_time_and_key_portable, one per policy: 5110 cases, the earlier
ones unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 week ago
{
"description" : "format 3 time_only capsule with five files in three folders, one of them over two STREAM chunks and one without mtime, a comment of two lines and a declared author" ,
Spec v0.11 approved: the text of the review, SpecVersion 0.11 and its SHA-256
The author approved the text and the six open decisions on 1 October 2026.
The spec says now what the review left open: the form of the CMS signature
and of the TSTInfo field by field, the ESSCertIDv2 with SHA-256 written, the
padding of the locator at its boundaries, base32 CIDs, the addresses read
without decoding, the issuer shown by the rules of the holder, and the area
decided after the signatures. SpecVersion is 0.11, the records of fixtures
and vectors say so, and decrypt shows an mtime later than a valid seal as an
inconsistency, which 29.7 asks as a SHOULD.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
1 week ago
"spec" : "0.11" ,
Format 3, step 6b: the nine fixtures of format 3
The fixtures of spec 67 for format 3, each with its record, its BODY,
its inspect output and, for time_and_key, its .dkk:
- format3_single, format3_tree (five files in three folders, one over
two STREAM chunks, one without mtime, a comment and a declared
author), format3_comment_only (no files; a TAB in the comment),
format3_bloque256 and format3_time_and_key_portable, written with
EncryptFiles;
- format3_area_1024, format3_security_v2 (verdict X),
format3_signature_unsupported (an author-signature of alg 1 with a
random key of 32 bytes and a random signature of 64: F1) and
format3_seal_unsupported (that and a seal of seal_type 1: F1 and S1),
which only a generator of test vectors writes (62.1 rule 13), built
with testkit.Build.
The record of a format 3 fixture adds the area, SECURITY_CBOR,
HEAD_CBOR, the salt, the comment, the declared author, the head
extensions, the offset of CONTENT in BODY, each file with its layout,
SHA-256 and mtime, and the verdicts with their lines; its plaintext
file is BODY. The generator writes, then recovers every value by
opening layer by layer for the three formats alike, and refreshes the
records of format 3 through a Sink.
Tests: the conformance test checks BODY, the head, security and every
file, and opens through a MemorySink; the .dkk tests take the .dkk of
formats 2 and 3 too (spec 68); the CLI decrypts five of the fixtures
into folders; the control fuzz target decodes with the three schema
versions. The differential corpus gains two bases, format3_single and
format3_time_and_key_portable, one per policy: 5110 cases, the earlier
ones unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 week ago
"format" : 3 ,
"file" : "format3_tree.dkc" ,
"sha256" : "217f378faaf795f6a9c416b564fb8931bb2e896918aee870120fd14f9a5da7d1" ,
"release" : {
"round" : 1001 ,
"signature" : "b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41"
} ,
"prelude" : "444b43310300000000000079000001ca" ,
"public_header" : "a5006a646174656b657963617001010250091119676ec081409c666846153ba7eb037853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d58300400" ,
"datekey" : "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMX0" ,
"capsule_id" : "091119676ec081409c666846153ba7eb" ,
"access_policy" : "time_only" ,
"structure" : "time_only" ,
"unlock_at" : "2023-08-23T15:59:27Z" ,
"header_binding" : "a369edff0cde0c948ccf0be811991b5f466f3128e2d76ab5f2604741cbcd7eb9" ,
"outer_stanzas" : [
{
"type" : "tlock" ,
"args" : [
"1001" ,
"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"
]
}
] ,
"payload_stanzas" : [
{
"type" : "X25519" ,
"args" : [
"secFiYmnRb5jyjFfrsZs5TWl6ZQ4c6qwPoRK7yvMJAw"
]
}
] ,
"control_cbor" : "a60070646174656b6579732d636f6e74726f6c0103025820a369edff0cde0c948ccf0be811991b5f466f3128e2d76ab5f2604741cbcd7eb90358206084cf489493da67e85e71b3ef5c2e6e17db1a11795fce9be601c062db4f7c8d0648000000000001486e0702" ,
"payload_identity" : "6084cf489493da67e85e71b3ef5c2e6e17db1a11795fce9be601c062db4f7c8d" ,
"payload_length" : 84078 ,
"padding" : 2 ,
"padded_length" : 86016 ,
"plaintext_file" : "format3_tree.plaintext" ,
"plaintext_sha256" : "f69ac5f450966f7d0e9161aa37451d4260b194a750e3e132c02e8a15ba561cfa" ,
"area_len" : 512 ,
"security_cbor" : "a20071646174656b6579732d73656375726974790101" ,
"head_cbor" : "a6006d646174656b6579732d686561640101025820276d7d0418b5fe20dfa9a440c9cf6a259d041238433b44c1d331bfc25ff0bc3903782f5061726120616272697220656e2066616d696c69612e0a436f6e2063617269c3b16f2c20646573646520323032362e046a416e61204cc3b370657a0585a6006963617274612e747874011825020003182504582089f8d33bccb614f3928203cdc48da69b2c7e3eedddcc097d47977806077fb5c1051a6abcf9c0a5007818666f746f732f323032352f6174617264656365722e6a706701190bb802182503190bdd045820cc26b6f4c05b315883de7ca59eb990a56efaff70c6b8f366e900975804b27b18a60074666f746f732f323032352f706c6179612e6a7067011a0001388002190bdd031a0001445d0458205619f3e6974f07c51e71777064e0d46992144fe91f6218fb00ac2e7074555ed1051a6abba840a6006f666f746f732f6c65656d652e7478740116021a0001445d031a00014473045820cc5e54573bb1b57f0481843fe6c1bd7bebd236d73057220cc8dba732d9cf4700051a6abcf9c0a600746dc3ba736963612f63616e6369c3b36e2e747874010c021a00014473031a0001447f0458203e1453835def913b4b9ef720e11e5e2ac167a9af12b9f0a5417be8f84ded5e5a051a6abcf9c0" ,
"salt" : "276d7d0418b5fe20dfa9a440c9cf6a259d041238433b44c1d331bfc25ff0bc39" ,
"comment" : "Para abrir en familia.\nCon cariño, desde 2026." ,
"declared_author" : "Ana López" ,
"content_offset" : 1007 ,
"files" : [
{
"path" : "carta.txt" ,
"size" : 37 ,
"start" : 0 ,
"end" : 37 ,
"sha256" : "89f8d33bccb614f3928203cdc48da69b2c7e3eedddcc097d47977806077fb5c1" ,
"mtime" : 1790769600
} ,
{
"path" : "fotos/2025/atardecer.jpg" ,
"size" : 3000 ,
"start" : 37 ,
"end" : 3037 ,
"sha256" : "cc26b6f4c05b315883de7ca59eb990a56efaff70c6b8f366e900975804b27b18"
} ,
{
"path" : "fotos/2025/playa.jpg" ,
"size" : 80000 ,
"start" : 3037 ,
"end" : 83037 ,
"sha256" : "5619f3e6974f07c51e71777064e0d46992144fe91f6218fb00ac2e7074555ed1" ,
"mtime" : 1790683200
} ,
{
"path" : "fotos/leeme.txt" ,
"size" : 22 ,
"start" : 83037 ,
"end" : 83059 ,
"sha256" : "cc5e54573bb1b57f0481843fe6c1bd7bebd236d73057220cc8dba732d9cf4700" ,
"mtime" : 1790769600
} ,
{
"path" : "música/canción.txt" ,
"size" : 12 ,
"start" : 83059 ,
"end" : 83071 ,
"sha256" : "3e1453835def913b4b9ef720e11e5e2ac167a9af12b9f0a5417be8f84ded5e5a" ,
"mtime" : 1790769600
}
] ,
"verdicts" : {
"signature" : "F0" ,
"seal" : "S0" ,
"lines" : [
"Sin firma de autor."
]
} ,
"stages" : [
{
"step" : 1 ,
"name" : "parse DKC1" ,
"ok" : true
} ,
{
"step" : 2 ,
"name" : "prelude" ,
"ok" : true
} ,
{
"step" : 3 ,
"name" : "public header" ,
"ok" : true
} ,
{
"step" : 4 ,
"name" : "header validation" ,
"ok" : true
} ,
{
"step" : 5 ,
"name" : "sealed control structure" ,
"ok" : true
} ,
{
"step" : 6 ,
"name" : "payload structure" ,
"ok" : true
} ,
{
"step" : 7 ,
"name" : "condition" ,
"ok" : true
} ,
{
"step" : 8 ,
"name" : "tlock stanza" ,
"ok" : true
} ,
{
"step" : 9 ,
"name" : "release" ,
"ok" : true
} ,
{
"step" : 10 ,
"name" : "release verification" ,
"ok" : true
} ,
{
"step" : 11 ,
"name" : "open sealed control" ,
"ok" : true
} ,
{
"step" : 12 ,
"name" : "policy structure" ,
"ok" : true
} ,
{
"step" : 14 ,
"name" : "control" ,
"ok" : true
} ,
{
"step" : 15 ,
"name" : "header binding" ,
"ok" : true
} ,
{
"step" : 16 ,
"name" : "payload identity" ,
"ok" : true
} ,
{
"step" : 17 ,
"name" : "open payload" ,
"ok" : true
} ,
{
"step" : 18 ,
"name" : "commit" ,
"ok" : true
}
]
}