Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{
"description" : "format 3 time_only capsule with a single file, nota.txt, as format3_signed, without a signature: the area of 32 KiB of spec v0.11 holds the empty security, and P is the one of format3_signed" ,
Specification 0.15: the release object, a release in hand and step 9.c
specVersion is 0.15 and testdata is synced with datekeys-go at 3c3e737
(branch v0.15): every file changes its spec field, mutations.json gains the
field source and four cases, and vectors/release.json and releases/ are new
(142 files).
release.dart, as provider of Go at 2eeca40, with its texts: encodeRelease
and decodeRelease of the release object (spec v0.15, 47.1) with the CBOR
profile of the library, its size first, then its type and version, then its
schema; parseRelease, which also reads drand's JSON with the rules of
encoding/json of Go for its three fields; verifyRelease checks the chain hash
a release names, ERR_PROFILE_MISMATCH, before its round and its signature;
ReleaseSupplier, EncodedRelease and supplyRelease, a release in the caller's
hand; and ReleaseArchive, the lookup of a local release archive (50), whose
failures are ERR_RELEASE_UNAVAILABLE at step 9.
open: OpenOptions.release takes a release in hand, exclusive with source. It
is not compared with the clock (step 9.c); Opened.clockBehind reports a clock
behind it, and the step 9 detail is Go's. Step 10 starts with the layers of
the object. A network source keeps its behaviour. Opened.release carries the
chain hash of the pinned profile.
Vectors: mutation_texts.json is regenerated with tool/mutation_go_texts.go,
which now replays each case with its source as testkit does: 149 cases
change only the detail of step 9 ("release supplied by the caller"), the
case "round not reached yet" now opens, and the four new cases are added.
release_vectors.json, the open vectors, and the formats, locator, security
and seal vectors come out the same at 3c3e737 but for their spec field.
tool/release_archive_go_texts.go writes the texts of provider.Archive on
edited archives; tool/release_copy.dart copies release.json, releases/ and
those texts to release.g.dart for the tests compiled to JavaScript.
errors_spec_test reads the spec at the commit of testdata/SOURCE.json rather
than at its tag.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 days ago
"spec" : "0.15" ,
Test data of the branch v0.12 of datekeys-go at c531e93
testdata/ is synced with datekeys-go at c531e93, the head of the branch
v0.12, whose testdata is that of 601e6d2, the copy of datekeys-ts. Every
file keeps "spec": "0.11": the draft v0.12 is not approved yet. From the
tag spec-v0.11 it brings the fixtures format3_unsigned and format3_note,
format3_seal_unsupported with seal_type 4294967295, the records of
format3_sealed and format3_signed_cms, the mutation corpus of 218 cases,
note.json, security.json with a context and lines, security_cms.json of
135 cases and locator.json.
The vectors that the generators of tool/ make from the testdata are
written again by Go at c531e93: mutation_texts.json, open_cases.json,
formats_*.json with formats_vectors.g.dart, ibe_vectors.json and
age_fixtures.json; release_vectors.json, primitives.json and the views
of open_vectors.g.dart come out the same. age.json does not read the
testdata, and stays frozen: age draws its keys from crypto/rand. The
tests count 26 fixtures and 218 cases, and the inspection of
format3_note gives the note of its record. No difference with Go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
"format" : 3 ,
"file" : "format3_unsigned.dkc" ,
"sha256" : "317ab722ae3812a25ddd78b4c98c586363e5587c8d3634c881ce7c421af19168" ,
"release" : {
"round" : 1000 ,
"signature" : "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39"
} ,
"prelude" : "444b43310300000000000079000001ca" ,
"public_header" : "a5006a646174656b6579636170010102500cced8e8b035d6dd70f39923b407a96c037853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d48300400" ,
"datekey" : "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0" ,
"capsule_id" : "0cced8e8b035d6dd70f39923b407a96c" ,
"access_policy" : "time_only" ,
"structure" : "time_only" ,
"unlock_at" : "2023-08-23T15:59:24Z" ,
"header_binding" : "36fac05bdec31225c4249bbdf14381b72c28e9dc8d6eec8af2500ec83c03ea8c" ,
"outer_stanzas" : [
{
"type" : "tlock" ,
"args" : [
"1000" ,
"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"
]
}
] ,
"payload_stanzas" : [
{
"type" : "X25519" ,
"args" : [
"NcekpxDZyrUYH4JypnvSI6VsJ70XDGb9dNeny2xewlQ"
]
}
] ,
"control_cbor" : "a60070646174656b6579732d636f6e74726f6c010302582036fac05bdec31225c4249bbdf14381b72c28e9dc8d6eec8af2500ec83c03ea8c0358204207790feb87ae42795751d6a28fee2af78359aeef98f1dc9faef32e9c7ddba4064800000000000080930702" ,
"payload_identity" : "4207790feb87ae42795751d6a28fee2af78359aeef98f1dc9faef32e9c7ddba4" ,
"payload_length" : 32915 ,
"padding" : 2 ,
"padded_length" : 34816 ,
"plaintext_file" : "format3_unsigned.plaintext" ,
"plaintext_sha256" : "25527e5e2e1ce02056d4419fb89f7b0ce35e4920f93217f58dcf62a4377f8af5" ,
"area_len" : 32768 ,
"security_cbor" : "a20071646174656b6579732d73656375726974790101" ,
"head_cbor" : "a4006d646174656b6579732d686561640101025820503815e579869d0498c3267596adc6555a6d9db770c834f5ba0e5ff8fc08fec90581a600686e6f74612e7478740116020003160458205d596d5f49c179f0ec337f4610155fc237e727f9dee85377a5fce67a3c853510051a6abcf9c0" ,
"salt" : "503815e579869d0498c3267596adc6555a6d9db770c834f5ba0e5ff8fc08fec9" ,
"content_offset" : 32893 ,
"files" : [
{
"path" : "nota.txt" ,
"size" : 22 ,
"start" : 0 ,
"end" : 22 ,
"sha256" : "5d596d5f49c179f0ec337f4610155fc237e727f9dee85377a5fce67a3c853510" ,
"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
}
]
}