Stage 0: the package datekeys and its test data at spec-v0.11
A pure Dart package, without Flutter, for the app that the author will
write in Flutter (docs/PLAN_dart.md, stage 0):
- pubspec.yaml: the package datekeys, unpublished, for Dart 3.13; at run
time only package:crypto, and in development only package:test, which
the author approved on 5 October.
- testdata/ vendored from datekeys-go at the tag spec-v0.11 (ae33434),
124 files, with the same testdata/SOURCE.json that datekeys-ts writes for
that commit.
- tool/sync_testdata.dart, the port of scripts/sync-testdata.mjs, and
test/testdata_test.dart, which checks the copy and that every file names
specVersion; test/version_test.dart keeps pubspec.yaml and
lib/src/version.dart in step.
- tool/check.sh, the local gate: format, analysis with every info fatal,
tests, and the copy against ../datekeys-go.
- The licence, Apache-2.0, as the other two implementations.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
|
|
|
{
|
|
|
|
|
"description": "format 3 time_only capsule with a comment of two lines, the second one with a TAB, a declared author and no files",
|
Specification 0.15: the release object, a release in hand and step 9.c
specVersion is 0.15 and testdata is synced with datekeys-go at 3c3e737
(branch v0.15): every file changes its spec field, mutations.json gains the
field source and four cases, and vectors/release.json and releases/ are new
(142 files).
release.dart, as provider of Go at 2eeca40, with its texts: encodeRelease
and decodeRelease of the release object (spec v0.15, 47.1) with the CBOR
profile of the library, its size first, then its type and version, then its
schema; parseRelease, which also reads drand's JSON with the rules of
encoding/json of Go for its three fields; verifyRelease checks the chain hash
a release names, ERR_PROFILE_MISMATCH, before its round and its signature;
ReleaseSupplier, EncodedRelease and supplyRelease, a release in the caller's
hand; and ReleaseArchive, the lookup of a local release archive (50), whose
failures are ERR_RELEASE_UNAVAILABLE at step 9.
open: OpenOptions.release takes a release in hand, exclusive with source. It
is not compared with the clock (step 9.c); Opened.clockBehind reports a clock
behind it, and the step 9 detail is Go's. Step 10 starts with the layers of
the object. A network source keeps its behaviour. Opened.release carries the
chain hash of the pinned profile.
Vectors: mutation_texts.json is regenerated with tool/mutation_go_texts.go,
which now replays each case with its source as testkit does: 149 cases
change only the detail of step 9 ("release supplied by the caller"), the
case "round not reached yet" now opens, and the four new cases are added.
release_vectors.json, the open vectors, and the formats, locator, security
and seal vectors come out the same at 3c3e737 but for their spec field.
tool/release_archive_go_texts.go writes the texts of provider.Archive on
edited archives; tool/release_copy.dart copies release.json, releases/ and
those texts to release.g.dart for the tests compiled to JavaScript.
errors_spec_test reads the spec at the commit of testdata/SOURCE.json rather
than at its tag.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 days ago
|
|
|
"spec": "0.15",
|
Stage 0: the package datekeys and its test data at spec-v0.11
A pure Dart package, without Flutter, for the app that the author will
write in Flutter (docs/PLAN_dart.md, stage 0):
- pubspec.yaml: the package datekeys, unpublished, for Dart 3.13; at run
time only package:crypto, and in development only package:test, which
the author approved on 5 October.
- testdata/ vendored from datekeys-go at the tag spec-v0.11 (ae33434),
124 files, with the same testdata/SOURCE.json that datekeys-ts writes for
that commit.
- tool/sync_testdata.dart, the port of scripts/sync-testdata.mjs, and
test/testdata_test.dart, which checks the copy and that every file names
specVersion; test/version_test.dart keeps pubspec.yaml and
lib/src/version.dart in step.
- tool/check.sh, the local gate: format, analysis with every info fatal,
tests, and the copy against ../datekeys-go.
- The licence, Apache-2.0, as the other two implementations.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
|
|
|
"format": 3,
|
|
|
|
|
"file": "format3_comment_only.dkc",
|
|
|
|
|
"sha256": "7f98a89413f08655bbbab28b96585dfa6173c1705dd81a900deba2100d19f2ef",
|
|
|
|
|
"release": {
|
|
|
|
|
"round": 1004,
|
|
|
|
|
"signature": "a40658b820c0f8c10207524179a2031ba9537688a0d04e4851b58026be9a341fee3b96fb48ffad28483d84b40a5864aa"
|
|
|
|
|
},
|
|
|
|
|
"prelude": "444b43310300000000000079000001ca",
|
|
|
|
|
"public_header": "a5006a646174656b657963617001010250d4d92a78eb71a94616bf193a8b665727037853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774e48300400",
|
|
|
|
|
"datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwNH0",
|
|
|
|
|
"capsule_id": "d4d92a78eb71a94616bf193a8b665727",
|
|
|
|
|
"access_policy": "time_only",
|
|
|
|
|
"structure": "time_only",
|
|
|
|
|
"unlock_at": "2023-08-23T15:59:36Z",
|
|
|
|
|
"header_binding": "a051aa2f17d521fcbf46d9c11de99d8013a1f34a29b59edc52b873734df45315",
|
|
|
|
|
"outer_stanzas": [
|
|
|
|
|
{
|
|
|
|
|
"type": "tlock",
|
|
|
|
|
"args": [
|
|
|
|
|
"1004",
|
|
|
|
|
"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"payload_stanzas": [
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"YZsN75HrKrC5u9TDysMHxgjifiBjc4X8CoB/zdvssFM"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"control_cbor": "a60070646174656b6579732d636f6e74726f6c0103025820a051aa2f17d521fcbf46d9c11de99d8013a1f34a29b59edc52b873734df45315035820c439fa70ee755bfa49db4a61db3ccd29c983959884eb07ce0f120692038509a20648000000000000027c0702",
|
|
|
|
|
"payload_identity": "c439fa70ee755bfa49db4a61db3ccd29c983959884eb07ce0f120692038509a2",
|
|
|
|
|
"payload_length": 636,
|
|
|
|
|
"padding": 2,
|
|
|
|
|
"padded_length": 768,
|
|
|
|
|
"plaintext_file": "format3_comment_only.plaintext",
|
|
|
|
|
"plaintext_sha256": "bc5b05885e608f036d8a14fde8738a8c53b395b71c3bcee99c1eab37ea23e80e",
|
|
|
|
|
"area_len": 512,
|
|
|
|
|
"security_cbor": "a20071646174656b6579732d73656375726974790101",
|
|
|
|
|
"head_cbor": "a5006d646174656b6579732d686561640101025820715eee70d35b1909c170f2775c414b56ff090a280f79ce3f6c5e28906ffe7bfa03783346656c697a2063756d706c6561c3b16f732e0a0941627265206573746f2064656e74726f206465206469657a2061c3b16f732e0463416e61",
|
|
|
|
|
"salt": "715eee70d35b1909c170f2775c414b56ff090a280f79ce3f6c5e28906ffe7bfa",
|
|
|
|
|
"comment": "Feliz cumpleaños.\n\tAbre esto dentro de diez años.",
|
|
|
|
|
"declared_author": "Ana",
|
|
|
|
|
"content_offset": 636,
|
|
|
|
|
"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
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|