v0.10
main
v0.5.0
v0.4.0
v0.3.0
v0.2.0
v0.1.0
${ noResults }
2 Commits (7446db60848571ef1edf297ae518bc4c4d5fb03e)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
3c95d1a523 |
Specification 0.15: the release object, a release in hand and step 9.c
- SPEC_VERSION 0.15, version 0.4.0-dev; testdata synced from datekeys-go at 3c3e737 (v0.15), which adds vectors/release.json and releases/ and the field source of mutations.json. - releaseobject.ts, without noble, as provider/release.go and archive.go of Go: encodeRelease, decodeRelease with the layers of step 10 (size of 1 to 1024 bytes, type and version, schema), parseRelease, which reads drand's JSON as encoding/json does, the ReleaseSupplier of a release in hand (encodedRelease) and ReleaseArchive, the informative local archive, whose failures are ERR_RELEASE_UNAVAILABLE; all with Go's texts. - verifyRelease compares the chain hash a release names with the pinned profile first (ERR_PROFILE_MISMATCH). - open takes OpenOptions.release, exclusive with source: it is not compared with the clock (step 9.c, option B), Opened.clockBehind reports a clock behind it, and it is decoded at step 10; a network source is still never asked before the round time. The verified release carries the chain hash of the pinned profile. - vectors.test.ts runs release.json and every file of releases/, and the mutation corpus with the source of each case, as testkit's singleSource; scripts/mutation-go-texts.go does the same, and testing/mutation-texts.json is regenerated: the spec field, "round not reached yet" now ok, and the four new cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
23 hours ago |
|
|
b176ad2f17 |
Format 3, step 3: read capsule format 3 of spec v0.10
Syncs testdata with datekeys-go at the tag spec-v0.10 (cc35d2c) and moves the reader to the DateKeys Protocol Specification v0.10. The three capsule formats are read. - framing: FORMAT_3, and isPadded for formats 2 and 3. control: schema version 3, with the keys 6 and 7 of version 2. SPEC_VERSION is 0.10. - open: OpenOptions.sink receives the files of a format 3 capsule (sink.ts: Sink with begin, create, commit and abort, as capsule.Sink, and MemorySink). Without one, open rejects with a TypeError right after step 2, before any request, as ErrSinkRequired. Opened gains head, verdicts, areaLen and unusableHeadExtensions. - open3.ts: step 17 of format 3 in its substeps 17.2 to 17.8, as openBody of the reference: a failure of age or a plaintext whose length is not P prevails, the first failing substep decides, and the codes other than ERR_INTEGRITY are reported only after reading PAYLOAD_AGE to its end. Reads grow with the bytes received, never with the lengths BODY declares. A failure of the sink is ERR_INTEGRITY with its text, and the sink is aborted once after begin. - The page: opener.ts opens the fixtures of format 3 into a MemorySink; the open panel says that it does not deliver their files yet, and the glosses of the steps name format 3. check-build.mjs refuses to ship the heads, salts, comments and paths of the format 3 fixtures. Tests: the 21 fixtures, format 3 laid out byte by byte from its record and opened into a sink with its files and verdicts; the 209 cases of the corpus from memory and from a Blob, with the code, the step and, new, the exact text of capsule.Open, frozen by scripts/mutation-go-texts.go in testing/mutation-texts.json, which replays the corpus as internal/testkit does (its extension validator texts included); the 5110 differential cases over 14 bases; paths, path_fold, head_schema and security vectors; the control of schema version 3 in cbor.json; and step 17 on crafted plaintexts sealed again to I_PAYLOAD, whose texts capsule.Open gives on the same plaintexts. ibe-vectors.json gains the nine format 3 fixtures from scripts/ibe-go-vectors.go; the twelve before are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
1 week ago |