v0.10
main
v0.5.0
v0.4.0
v0.3.0
v0.2.0
v0.1.0
${ noResults }
3 Commits (main)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
f79d8e2de8 |
Specification 0.16 draft: a seal without accuracy, drand's JSON read strictly
The draft v0.16 of datekeys-go at 4f78854 (branch v0.16): SPEC_VERSION 0.16, and testdata, wordlists and annex synced from that commit. The annex is §79 of the draft, with the CC BY-ND 4.0 license of the specification in its title and the key of words in 79.7. A seal without accuracy proves nothing before the opening date (§29.7, §29.11, as 7e3b810): a valid seal is S4 only when its token carries accuracy and t plus the accuracy is before round_time; otherwise S5, with the first reason that holds: late, no accuracy under the BTSP policy of ETSI EN 319 421 (0.4.0.2023.1.1), or no accuracy. cms.ts reads hasAccuracy and the policy of the token (tokenIsBTSP); securitycms.ts gives SealReason, Detail.sealReason and SignerLine.reason; S5 has no fixed text any more, and verdictLines writes it and the line of a signer of F6 with the reason, the texts of Go byte for byte (sealReasonText). encryptFiles returns the verdicts of the area it wrote in Encrypted.security, as Result.Security of Go, so that a writer warns of a seal without accuracy (§62.1 rule 19). drand's JSON is read strictly (§47.1, as b570338): parseDrandJSON, as ParseDrandJSON of Go, reads RFC 8259 JSON in valid UTF-8 whose value is an object, with no name repeated in any object, names compared exactly once their escapes are decoded, a lone escaped surrogate malformed, the round a number without sign, fraction or exponent from 1 to 2^53 - 1, and signature and randomness strings, with the error texts of Go. ParsedRelease is now a Release: no round above 2^53 - 1 is read. The page reads the answers of the relays with it (drand.ts), as the client of Go does, and the pasted release with strictJSON and jsonRound (release-input.ts), so that it never reads another round than step 10. Tests: security_cms.json with seal_reason (143 cases), the 38 JSON inputs of release.json, the new cases of signature2_test.go and drandjson_test.go (with the escapes written as escapes), and the new fixtures: format3_time_and_key_words opens with the identity that the words of its words_text give with normalizeWords and wordKey, in the library and in the page, and format3_full_chunk, whose PAYLOAD_AGE ends in a full STREAM chunk, opens. check-build.mjs counts words_text among the secrets of the fixtures. Reference files made again with Go at 4f78854: mutation-texts.json (its spec field only), ibe-vectors.json (the two new fixtures, the rest unchanged) and signing-vectors.json, in an export of 4f78854 with the same frozen samples read again: the capsules are the same, and the tokens of the sealer, without accuracy, now give S5. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
7 hours ago |
|
|
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> |
1 day ago |
|
|
4e23f88c0a |
Specification 0.14, approved: SPEC_VERSION 0.14, testdata at spec-v0.14, one drand scheme and tlock_steps.json
- SPEC_VERSION 0.14; testdata synced from datekeys-go at 39b2033 (spec-v0.14), which adds vectors/tlock_steps.json; testing/mutation-texts.json regenerated with Go: only its spec field changes. - Decision 8: validateProfile admits only bls-unchained-g1-rfc9380, with its public key in G2, in the order and with the texts of Go's validateDrand at c041fa3; any other drand scheme fails with ERR_UNKNOWN_PROFILE before the key and the chain hash. - vectors.test.ts walks tlock_steps.json value by value with the code of ibe.ts, release.ts and bls12381.ts, with its negative checks, and the testdata guard requires it. ibe.ts exports h3Base, h3Try and hashToG1, which h3, the encryption and release.ts now use. - The comment of h3 said the top bit is cleared: the first byte is shifted one bit to the right, as kyber does. - README and CHANGELOG. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
1 day ago |