From 62107d7cd4176ec007b17ecd929238b7f30e7ac3 Mon Sep 17 00:00:00 2001 From: dev Date: Tue, 6 Oct 2026 16:08:29 +0200 Subject: [PATCH] Specification 0.12, approved: SPEC_VERSION 0.12 and testdata at spec-v0.12 Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 9 ++ README.md | 6 +- lib/src/version.dart | 2 +- test/formats_differential_vm_test.dart | 3 +- test/formats_vectors_test.dart | 3 +- test/vectors/formats_body.json | 2 +- test/vectors/formats_control.json | 2 +- test/vectors/formats_datekey.json | 2 +- test/vectors/formats_encode.json | 2 +- test/vectors/formats_extension.json | 2 +- test/vectors/formats_framing.json | 2 +- test/vectors/formats_header.json | 2 +- test/vectors/formats_padding.json | 2 +- test/vectors/formats_profile.json | 2 +- test/vectors/formats_time.json | 2 +- test/vectors/formats_vectors.g.dart | 20 ++-- test/vectors/mutation_texts.json | 2 +- test/vectors/open_cases.json | 2 +- test/vectors/open_heads.json | 2 +- test/vectors/open_inspect.json | 2 +- test/vectors/open_notes.json | 2 +- test/vectors/open_vectors.g.dart | 8 +- test/vectors/security_vectors.g.dart | 2 +- test/vectors/security_vectors.json | 2 +- test/vectors/securitycms_vectors.g.dart | 2 +- test/vectors/securitycms_vectors.json | 2 +- testdata/README.md | 16 +-- testdata/SOURCE.json | 102 +++++++++--------- testdata/fixtures/empty_payload.json | 2 +- testdata/fixtures/format2_empty_payload.json | 2 +- .../format2_time_and_key_portable.dkk.json | 2 +- .../format2_time_and_key_portable.json | 2 +- .../format2_time_and_key_recipients.dkk.json | 2 +- .../format2_time_and_key_recipients.json | 2 +- .../format2_time_and_key_sixteen.json | 2 +- testdata/fixtures/format2_time_only.json | 2 +- .../fixtures/format2_time_only_bloque256.json | 2 +- .../format2_time_only_extensions.json | 2 +- testdata/fixtures/format3_area_1024.json | 2 +- testdata/fixtures/format3_bloque256.json | 2 +- testdata/fixtures/format3_comment_only.json | 2 +- testdata/fixtures/format3_note.json | 2 +- .../fixtures/format3_seal_unsupported.json | 2 +- testdata/fixtures/format3_sealed.json | 2 +- testdata/fixtures/format3_security_v2.json | 2 +- .../format3_signature_unsupported.json | 2 +- testdata/fixtures/format3_signed.json | 2 +- testdata/fixtures/format3_signed_cms.json | 2 +- testdata/fixtures/format3_single.json | 2 +- .../format3_time_and_key_portable.dkk.json | 2 +- .../format3_time_and_key_portable.json | 2 +- testdata/fixtures/format3_tree.json | 2 +- testdata/fixtures/format3_unsigned.json | 2 +- .../fixtures/time_and_key_portable.dkk.json | 2 +- testdata/fixtures/time_and_key_portable.json | 2 +- .../time_and_key_portable_extension.dkk.json | 2 +- .../fixtures/time_and_key_recipients.dkk.json | 2 +- .../fixtures/time_and_key_recipients.json | 2 +- testdata/fixtures/time_only.json | 2 +- testdata/fixtures/time_only_extensions.json | 2 +- testdata/vectors/cbor.json | 2 +- testdata/vectors/dk1.json | 2 +- testdata/vectors/ed25519_strict.json | 2 +- testdata/vectors/head_schema.json | 2 +- testdata/vectors/inspect_differential.json | 2 +- testdata/vectors/locator.json | 2 +- testdata/vectors/mutations.json | 2 +- testdata/vectors/note.json | 2 +- testdata/vectors/padding.json | 2 +- testdata/vectors/path_fold.json | 2 +- testdata/vectors/paths.json | 2 +- testdata/vectors/profile_quicknet.json | 2 +- testdata/vectors/quicknet_rounds.json | 2 +- testdata/vectors/security.json | 2 +- testdata/vectors/security_cms.json | 2 +- testdata/vectors/tlock_ibe.json | 2 +- testdata/vectors/wordkey.json | 2 +- 77 files changed, 158 insertions(+), 147 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8edd2b3..0e53b4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ Cambios notables de la librería Dart. El proyecto usa versionado semántico; mientras sea 0.x, no hay promesa de estabilidad. +## Especificación 0.12, en la rama `v0.12` — sin versión + +### La especificación 0.12, aprobada (06-10-2026) + +- El autor aprobó el 6 de octubre de 2026 el borrador v0.12, tal como estaba: `datekeys-go` lo cierra con el tag `spec-v0.12` (`fe405e2`). La librería pasa a la rama `v0.12`, como dice el plan: la rama `v0.11` se queda en `bb66e48`. +- `specVersion` pasa a `0.12`, y `testdata` se sincroniza con el tag: solo cambia el campo `spec` de cada fichero. +- Los vectores de `test/vectors/` que escriben los generadores de Go cambian solo su campo `spec`, en los `.json` y en sus copias `.g.dart`: entre `c531e93` y `fe405e2`, Go solo cambia `SpecVersion` y añade `wordkey.json`, así que el resto sale igual. Dos pruebas que comparaban con `0.11` comparan ahora con `specVersion`. +- La librería ya seguía el borrador: no cambia nada más. `tool/check.sh` pasa con 2 131 pruebas en la VM y 665 en Node. + ## Especificación 0.11, en la rama `v0.11` — sin versión ### Los vectores compartidos de la llave de palabras (06-10-2026) diff --git a/README.md b/README.md index b733051..5aaae19 100644 --- a/README.md +++ b/README.md @@ -541,7 +541,7 @@ Manda ECDSA: con el exponente 65 537, una verificación de RSA son 17 multiplica | Número | Dónde | Hoy | |---|---|---| | Librería | `version` de `lib/src/version.dart` y de `pubspec.yaml`, que una prueba mantiene iguales | `0.1.0-dev` | -| Especificación | `specVersion` de `lib/src/version.dart`: la que nombra el campo `spec` de cada fichero de `testdata/` | `0.11` | +| Especificación | `specVersion` de `lib/src/version.dart`: la que nombra el campo `spec` de cada fichero de `testdata/` | `0.12` | La rama sigue la versión de la especificación: `v0.11`, hasta que `datekeys-go` cierre la v0.12. Desde la etapa 5, `testdata/` es ya el de la rama `v0.12`. @@ -572,10 +572,10 @@ tool/check.sh ## Datos de prueba -`testdata/` es una copia de `datekeys-go/testdata` en un commit fijo. `testdata/SOURCE.json` registra el commit y el SHA-256 de cada fichero, igual que en `datekeys-ts`. La copia actual es la de la rama `v0.12` de `datekeys-go` en `084728d`, la misma que tiene `datekeys-ts`: 134 ficheros, con `wordkey.json`, los vectores compartidos de la llave de palabras, con los veredictos y las líneas del borrador v0.12. Cada fichero dice aún `"spec": "0.11"`, como el `SpecVersion` de Go, hasta que el autor apruebe el borrador. +`testdata/` es una copia de `datekeys-go/testdata` en un commit fijo. `testdata/SOURCE.json` registra el commit y el SHA-256 de cada fichero, igual que en `datekeys-ts`. La copia actual es la del tag `spec-v0.12` de `datekeys-go`, `fe405e2`, la misma que tiene `datekeys-ts`: 134 ficheros, con `wordkey.json`, los vectores compartidos de la llave de palabras, y los veredictos y las líneas de la v0.12. Cada fichero dice `"spec": "0.12"`, como el `SpecVersion` de Go. ```bash -dart run tool/sync_testdata.dart sync --commit 084728d +dart run tool/sync_testdata.dart sync --commit spec-v0.12 ``` ```bash diff --git a/lib/src/version.dart b/lib/src/version.dart index c6bd078..b1976c7 100644 --- a/lib/src/version.dart +++ b/lib/src/version.dart @@ -5,4 +5,4 @@ const String version = '0.1.0-dev'; /// The version of the DateKeys Protocol Specification that this library /// implements, and that the `spec` field of every file of its `testdata/` /// names. -const String specVersion = '0.11'; +const String specVersion = '0.12'; diff --git a/test/formats_differential_vm_test.dart b/test/formats_differential_vm_test.dart index d47b4f2..78593b4 100644 --- a/test/formats_differential_vm_test.dart +++ b/test/formats_differential_vm_test.dart @@ -9,6 +9,7 @@ library; import 'dart:convert'; import 'dart:io'; +import 'package:datekeys/src/version.dart'; import 'package:test/test.dart'; import 'formats_differential.dart'; @@ -37,7 +38,7 @@ void main() { test('every file is of this specification and of its generator', () { for (final f in files.values) { - expect(f['spec'], '0.11'); + expect(f['spec'], specVersion); expect(f['generator'], 'tool/formats_go_vectors.go'); } }); diff --git a/test/formats_vectors_test.dart b/test/formats_vectors_test.dart index d5d23e5..05fa6e0 100644 --- a/test/formats_vectors_test.dart +++ b/test/formats_vectors_test.dart @@ -17,6 +17,7 @@ import 'package:datekeys/src/framing.dart'; import 'package:datekeys/src/header.dart'; import 'package:datekeys/src/padding.dart'; import 'package:datekeys/src/profile.dart'; +import 'package:datekeys/src/version.dart'; import 'package:test/test.dart'; typedef Json = Map; @@ -42,7 +43,7 @@ void main() { final vectors = section(file, 'vectors'); test('is of this specification and holds valid and invalid strings', () { - expect(file['spec'], '0.11'); + expect(file['spec'], specVersion); expect(vectors.where((v) => v.containsKey('dk1')), isNotEmpty); expect(vectors.where((v) => v.containsKey('input')), isNotEmpty); }); diff --git a/test/vectors/formats_body.json b/test/vectors/formats_body.json index faaf345..7c41c60 100644 --- a/test/vectors/formats_body.json +++ b/test/vectors/formats_body.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "The frame of BODY (capsule.ParseBodyFrame) against L, and the zeros of the security area (capsule.CheckArea).", "frame": [ diff --git a/test/vectors/formats_control.json b/test/vectors/formats_control.json index 905a26d..9a18c71 100644 --- a/test/vectors/formats_control.json +++ b/test/vectors/formats_control.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "CONTROL_CBOR of the three formats (capsule.DecodeControl) of the fixtures, in their format and in another, edited, and built field by field.", "control": [ diff --git a/test/vectors/formats_datekey.json b/test/vectors/formats_datekey.json index 9624758..dbe73af 100644 --- a/test/vectors/formats_datekey.json +++ b/test/vectors/formats_datekey.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "dk1_ strings (datekey.Parse).", "parse": [ diff --git a/test/vectors/formats_encode.json b/test/vectors/formats_encode.json index 091d5d1..ca306f0 100644 --- a/test/vectors/formats_encode.json +++ b/test/vectors/formats_encode.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "The encoders on values: capsule.EncodeHeader and EncodeControl, accesskey.Encode, profile.NewRegistry, and the canonical JSON and dk1_ string of DateKeys (CanonicalJSON and Compact, empty when not valid); an encoding is in hex, or as its length and SHA-256 when it is large. big is the size of the data of the noncritical extension a of version 1, bytes 0x01, that takes the object to its limit. limits: the decoders on objects at the limits of spec §57 and one byte past them: zeros bytes of zeros, or an extension array 81 a3 00 61 61 01 01 02 5a and len bytes 0x07 (extension_data), or Canonical of the extension a of version 1 whose data is len zeros (extension_canonical).", "header": [ diff --git a/test/vectors/formats_extension.json b/test/vectors/formats_extension.json index 1035e38..d2b3111 100644 --- a/test/vectors/formats_extension.json +++ b/test/vectors/formats_extension.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "Extension arrays through codec.Unmarshal with extension.DecodeArray and EncodeArray, Canonical, CheckDisjoint, CheckCriticalIn and CheckNoncriticalIn with the registry placed of the generator (or CheckCritical and CheckNoncritical when object is empty, and no registry when registry is none), and CheckWrite with extension.Standard.", "array": [ diff --git a/test/vectors/formats_framing.json b/test/vectors/formats_framing.json index 9b4868a..0f0586c 100644 --- a/test/vectors/formats_framing.json +++ b/test/vectors/formats_framing.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "The PRELUDE of a .dkc (capsule.ParsePrelude), the steps 1 to 3 of capsule.Inspect on truncated and edited fixtures (with the step that fails, 0 when steps 1 to 8 pass), and whole .dkk files (accesskey.Decode), with the result, the code and the text of the Go reference.", "prelude": [ diff --git a/test/vectors/formats_header.json b/test/vectors/formats_header.json index a4dc49f..e8bb3b1 100644 --- a/test/vectors/formats_header.json +++ b/test/vectors/formats_header.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "PUBLIC_HEADER (capsule.DecodeHeader) of the fixtures, edited, and built field by field.", "header": [ diff --git a/test/vectors/formats_padding.json b/test/vectors/formats_padding.json index ca6f803..9e69691 100644 --- a/test/vectors/formats_padding.json +++ b/test/vectors/formats_padding.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "capsule.PaddedLength with both codes and capsule.PayloadAgeLength, at the boundaries of spec §29.1 up to L_MAX and past it; a code with null was rejected with text. check: the plaintext of PAYLOAD_AGE checked by capsule.Open against L and P (step 17): the content of the fixture (its .plaintext) followed by zeros, cut or extended to length bytes, with the byte at at set to value when given; step 0 when the capsule opens.", "padded": [ diff --git a/test/vectors/formats_profile.json b/test/vectors/formats_profile.json index 27532ad..8d095a2 100644 --- a/test/vectors/formats_profile.json +++ b/test/vectors/formats_profile.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "Provider Profiles: profile.Decode of the Quicknet profile, edited and with fields replaced, and Profile.Validate of values.", "decode": [ diff --git a/test/vectors/formats_time.json b/test/vectors/formats_time.json index 76781e4..2039207 100644 --- a/test/vectors/formats_time.json +++ b/test/vectors/formats_time.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "RFC 3339: time.Parse with time.RFC3339Nano, ok or error, and Format with RFC3339 and RFC3339Nano in UTC; datekey.Resolve, RoundTime and DateKey.Validate, and Profile.MaxRound, on the Quicknet profile with other genesis times and periods.", "parse": [ diff --git a/test/vectors/formats_vectors.g.dart b/test/vectors/formats_vectors.g.dart index bf2bd11..02e6103 100644 --- a/test/vectors/formats_vectors.g.dart +++ b/test/vectors/formats_vectors.g.dart @@ -5,7 +5,7 @@ /// Part of test/vectors/formats_framing.json. const formatsFramingJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "The PRELUDE of a .dkc (capsule.ParsePrelude), the steps 1 to 3 of capsule.Inspect on truncated and edited fixtures (with the step that fails, 0 when steps 1 to 8 pass), and whole .dkk files (accesskey.Decode), with the result, the code and the text of the Go reference.", "prelude": [ @@ -181,7 +181,7 @@ const formatsFramingJson = r''' /// Part of test/vectors/formats_header.json. const formatsHeaderJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "PUBLIC_HEADER (capsule.DecodeHeader) of the fixtures, edited, and built field by field.", "header": [ @@ -301,7 +301,7 @@ const formatsHeaderJson = r''' /// Part of test/vectors/formats_control.json. const formatsControlJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "CONTROL_CBOR of the three formats (capsule.DecodeControl) of the fixtures, in their format and in another, edited, and built field by field.", "control": [ @@ -440,7 +440,7 @@ const formatsControlJson = r''' /// Part of test/vectors/formats_profile.json. const formatsProfileJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "Provider Profiles: profile.Decode of the Quicknet profile, edited and with fields replaced, and Profile.Validate of values.", "decode": [ @@ -504,7 +504,7 @@ const formatsProfileJson = r''' /// Part of test/vectors/formats_extension.json. const formatsExtensionJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "Extension arrays through codec.Unmarshal with extension.DecodeArray and EncodeArray, Canonical, CheckDisjoint, CheckCriticalIn and CheckNoncriticalIn with the registry placed of the generator (or CheckCritical and CheckNoncritical when object is empty, and no registry when registry is none), and CheckWrite with extension.Standard.", "array": [ @@ -596,7 +596,7 @@ const formatsExtensionJson = r''' /// Part of test/vectors/formats_datekey.json. const formatsDatekeyJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "dk1_ strings (datekey.Parse).", "parse": [ @@ -666,7 +666,7 @@ const formatsDatekeyJson = r''' /// Part of test/vectors/formats_time.json. const formatsTimeJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "RFC 3339: time.Parse with time.RFC3339Nano, ok or error, and Format with RFC3339 and RFC3339Nano in UTC; datekey.Resolve, RoundTime and DateKey.Validate, and Profile.MaxRound, on the Quicknet profile with other genesis times and periods.", "parse": [ @@ -817,7 +817,7 @@ const formatsTimeJson = r''' /// Part of test/vectors/formats_padding.json. const formatsPaddingJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "capsule.PaddedLength with both codes and capsule.PayloadAgeLength, at the boundaries of spec §29.1 up to L_MAX and past it; a code with null was rejected with text. check: the plaintext of PAYLOAD_AGE checked by capsule.Open against L and P (step 17): the content of the fixture (its .plaintext) followed by zeros, cut or extended to length bytes, with the byte at at set to value when given; step 0 when the capsule opens.", "padded": [ @@ -897,7 +897,7 @@ const formatsPaddingJson = r''' /// Part of test/vectors/formats_encode.json. const formatsEncodeJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "The encoders on values: capsule.EncodeHeader and EncodeControl, accesskey.Encode, profile.NewRegistry, and the canonical JSON and dk1_ string of DateKeys (CanonicalJSON and Compact, empty when not valid); an encoding is in hex, or as its length and SHA-256 when it is large. big is the size of the data of the noncritical extension a of version 1, bytes 0x01, that takes the object to its limit. limits: the decoders on objects at the limits of spec §57 and one byte past them: zeros bytes of zeros, or an extension array 81 a3 00 61 61 01 01 02 5a and len bytes 0x07 (extension_data), or Canonical of the extension a of version 1 whose data is len zeros (extension_canonical).", "header": [ @@ -932,7 +932,7 @@ const formatsEncodeJson = r''' /// Part of test/vectors/formats_body.json. const formatsBodyJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/formats_go_vectors.go", "description": "The frame of BODY (capsule.ParseBodyFrame) against L, and the zeros of the security area (capsule.CheckArea).", "frame": [ diff --git a/test/vectors/mutation_texts.json b/test/vectors/mutation_texts.json index c8f27ad..cb80821 100644 --- a/test/vectors/mutation_texts.json +++ b/test/vectors/mutation_texts.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/mutation_go_texts.go", "description": "The text of the error of capsule.Open for every case of testdata/vectors/mutations.json, or ok for a capsule that opens, and its checks as [step, name, ok, detail, code]; go_error and go_step where Go and the corpus disagree. See the header of tool/mutation_go_texts.go.", "cases": [ diff --git a/test/vectors/open_cases.json b/test/vectors/open_cases.json index 599d1cd..c5a631e 100644 --- a/test/vectors/open_cases.json +++ b/test/vectors/open_cases.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/open_go_vectors.go", "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4", "description": "capsule.Open of a .dkc, as edits of a fixture, given the release (null: none), or a source that fails with source_error (its text and its code, none for a plain error); the clock now; the registry of profiles, empty when registry is empty; the extensions known at (id, version) with valid data valid_data (testkit.KnownExtensions), or reject_all, a registry that knows every extension and rejects all data with that text; the age identities, the .dkk decoded before (dkk, with its material replaced by dkk_material) or the .dkk still encoded (dkk_file); a sink that fails at sink_fail (begin, create i, write i, close i or commit, with the text no and the call); an output that fails with disk full when output_fail; accept, refuse to refuse every verdict with not trusted; and author_keys, the author keys saved with their labels. The outcome: result (ok, refused, or the code), text, the checks as [step, name, ok, detail, code], the release requests, the state of the sink, the content (length and SHA-256) or the files ([path, size, SHA-256 of what the sink received]) of a capsule that opens, the verdicts of a capsule of format 3 that opens (signature, seal, lines, author_key and author_label of alg 1, sealed_at), and the unusable extensions of each object as [id, version, text].", diff --git a/test/vectors/open_heads.json b/test/vectors/open_heads.json index 1747629..6cbac05 100644 --- a/test/vectors/open_heads.json +++ b/test/vectors/open_heads.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/open_go_vectors.go", "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4", "description": "HEAD_CBOR of a fixed seed, valid and broken in each layer of spec §69.1, through capsule.DecodeHead with no registry: the result, the code and the text; with_registry when the registry of the extensions a version 1 and org.example version 2 with data 01 (testkit.KnownExtensions) gives another. encode: capsule.EncodeHead of the decoded heads, their extensions reordered, repeated or in both arrays.", diff --git a/test/vectors/open_inspect.json b/test/vectors/open_inspect.json index 0dace84..d4569f7 100644 --- a/test/vectors/open_inspect.json +++ b/test/vectors/open_inspect.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/open_go_vectors.go", "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4", "description": "texts: the texts of the errors of capsule.Inspect, and results: for each mutation of testdata/vectors/inspect_differential.json, in its order, the index of its text in texts, -1 when steps 1 to 8 pass. views: the exact output of datekeys inspect -json (internal/inspectview) for time_only_extensions with another PUBLIC_HEADER, with the registry standard (extension.Standard), none, or reject_all, which knows every extension and rejects all data with not today.", diff --git a/test/vectors/open_notes.json b/test/vectors/open_notes.json index 3a44e8e..4b0ecd6 100644 --- a/test/vectors/open_notes.json +++ b/test/vectors/open_notes.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/open_go_vectors.go", "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4", "description": "The public note of spec §24.1: extension.CheckNote on the string of the bytes data; extension.Note and Header.UnusableNote of noncritical arrays (usable, text, unusable); and extension.Standard, in the order of check, on a note of version 1 with its bytes, absent data when empty: CheckNoncriticalIn of PUBLIC_HEADER (unusable, as [id, version, text]) and CheckWrite in its noncritical array (result and text).", diff --git a/test/vectors/open_vectors.g.dart b/test/vectors/open_vectors.g.dart index bef23aa..47de8a0 100644 --- a/test/vectors/open_vectors.g.dart +++ b/test/vectors/open_vectors.g.dart @@ -15,7 +15,7 @@ const openRecordsJson = r''' /// Part of test/vectors/open_cases.json: its cases on those fixtures. const openCasesJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/open_go_vectors.go", "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4", "description": "Part of open_cases.json.", @@ -97,7 +97,7 @@ const openCasesJson = r''' /// Part of test/vectors/open_heads.json. const openHeadsJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/open_go_vectors.go", "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4", "description": "Part of open_heads.json.", @@ -166,7 +166,7 @@ const openHeadsJson = r''' /// Part of test/vectors/open_notes.json. const openNotesJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/open_go_vectors.go", "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4", "description": "Part of open_notes.json.", @@ -520,7 +520,7 @@ const openNotesJson = r''' /// The views of test/vectors/open_inspect.json, and every sixth mutation of testdata/vectors/inspect_differential.json of those fixtures, with the text of Go. const openInspectJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/open_go_vectors.go", "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4", "description": "Part of open_inspect.json.", diff --git a/test/vectors/security_vectors.g.dart b/test/vectors/security_vectors.g.dart index 93c4f2e..716f53c 100644 --- a/test/vectors/security_vectors.g.dart +++ b/test/vectors/security_vectors.g.dart @@ -5,7 +5,7 @@ /// Part of test/vectors/security_vectors.json. const securityVectorsJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/security_go_vectors.go", "description": "Part of test/vectors/security_vectors.json: every eighth evaluation.", "contexts": [ diff --git a/test/vectors/security_vectors.json b/test/vectors/security_vectors.json index 896f0f1..121b509 100644 --- a/test/vectors/security_vectors.json +++ b/test/vectors/security_vectors.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/security_go_vectors.go", "description": "The security area of format 3 as package capsule of the Go reference gives it at the draft v0.12: commitments (PayloadCommit, ControlCommit with decode_format and format, or the text of its error, HeadDigest, SignersDigest, AuthorMessage, AuthorCode as Go's string and its bytes, SigPart, SealSubject); encode (EncodeSecurity, EncodeSecurityWith, EncodeAuthorSignature, EncodeSeal); evaluate: EvaluateSecurityIn of SECURITY_CBOR (hex, parts as [hex, repeat], or a base with edits) in the context of the index, EvaluateSecurity when null: the verdicts, author_key and author_label of alg 1, lines as indices into texts, alg and seal_type as read, and cms, the parts that only the reader of CMS evaluates; lines: Verdicts.Lines and SealedAt of verdicts built here; holder: holderText of a name, or of UTF-16 code units, and a hash. See the header of tool/security_go_vectors.go.", "contexts": [ diff --git a/test/vectors/securitycms_vectors.g.dart b/test/vectors/securitycms_vectors.g.dart index 4866fdc..7f65964 100644 --- a/test/vectors/securitycms_vectors.g.dart +++ b/test/vectors/securitycms_vectors.g.dart @@ -6,7 +6,7 @@ /// Part of test/vectors/securitycms_vectors.json. const securityCmsVectorsJson = r''' { - "spec": "0.11", + "spec": "0.12", "generator": "tool/security_go_vectors.go", "description": "Part of test/vectors/securitycms_vectors.json: its contexts and texts, its bases whole, and some of its cases, each built area as its hexadecimal.", "contexts": [ diff --git a/test/vectors/securitycms_vectors.json b/test/vectors/securitycms_vectors.json index 968d617..150aef1 100644 --- a/test/vectors/securitycms_vectors.json +++ b/test/vectors/securitycms_vectors.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "generator": "tool/security_go_vectors.go", "description": "Signatures of alg 2 and seals of seal_type 2 that this program makes, with keys of labels and the deterministic signatures of Go, as package capsule of the Go reference at the draft v0.12 evaluates them with EvaluateSecurityIn in the context of the index: the verdicts, the lines as indices into texts, alg and seal_type as read, cms, the detail of the signers and of a valid seal as the lines of security_vectors.json write it, sealed_at, and author_key of alg 1. An area is pieces (the hexadecimal of bytes, or the index of a chunk, each chunk itself pieces of the chunks before it), or a base edited in its target (value, the SignedData of key 2; signers, its SIGNERS; token, that of key 3) and written again with the encoders of capsule; sha256 is the first 8 bytes of the SHA-256 of the area. See the header of tool/security_go_vectors.go.", "contexts": [ diff --git a/testdata/README.md b/testdata/README.md index 2422f03..314ca5b 100644 --- a/testdata/README.md +++ b/testdata/README.md @@ -1,7 +1,7 @@ # DateKeys test data Official vectors, fixtures and corpora of the DateKeys Protocol Specification -v0.11 and of the draft v0.12, generated by the reference implementation. +v0.12, generated by the reference implementation. Another implementation consumes them as they are: this file documents every format, so that no Go code has to be read. The rules that decide each verdict are in the specification; this file points to them, and states only what @@ -21,12 +21,12 @@ added since. The local gate (`scripts/check.sh`) and CI run it and fail if any committed file changes: every file below is exactly what the implementation computes today. -The `spec` field of every file is `"0.11"`, the version this module declares, -until the author approves the draft v0.12. What the draft changes, the texts -of the verdicts of a certificate and of a seal, the profile of a certificate -and the rules of the addresses and of the padding of a locator, is already in -the files: the verdicts and the lines of `security.json`, `security_cms.json` -and `mutations.json`, and the cases of `locator.json`, are those of the draft. +The `spec` field of every file is `"0.12"`, the version this module declares. +What v0.12 changes from v0.11, the texts of the verdicts of a certificate and +of a seal, the profile of a certificate and the rules of the addresses and of +the padding of a locator, is in the files: the verdicts and the lines of +`security.json`, `security_cms.json` and `mutations.json`, and the cases of +`locator.json`, are those of v0.12. Conventions for every file: @@ -457,7 +457,7 @@ in `security_cms.json`. Security areas with an author signature of `alg` 2, a CMS signature with certificates, or a time seal of `seal_type` 2, an RFC 3161 token: 135 cases, each with the context of its capsule, the verdicts, the result of each signer -and the lines of the draft v0.12, §29.7, §29.10 and §29.11. They complete +and the lines of v0.12, §29.7, §29.10 and §29.11. They complete `security.json`, whose areas have no valid signature or seal of these kinds. The file is frozen: the certificates and the tokens are made once, with test keys, so a second implementation reads them and must reach the same verdicts diff --git a/testdata/SOURCE.json b/testdata/SOURCE.json index 00b0284..f019680 100644 --- a/testdata/SOURCE.json +++ b/testdata/SOURCE.json @@ -1,140 +1,140 @@ { "module": "g.activething.com/go/DateKeys", - "commit": "084728d3f7294cd93f644a5f87176a20e2a5de6e", + "commit": "fe405e2348744f50e54c72e35ae10470a01dc552", "files": { - "README.md": "3bd654992338f0450922da4907644eee20cf0792d2cea80fc26c5accec7e514c", + "README.md": "0c4244bf5ec7fe3865bef4dd2f69e4370184bc95060339d82422a4ff29d44b75", "fixtures/empty_payload.dkc": "871e9bf05b52bbae17f3adfbbf97b46e7f0e53aa8f57bcaa506e43f36f53a9d4", "fixtures/empty_payload.inspect.json": "373e5d012b023ad58bbb54cbdffe0bed9e50c637438a4083ddb74d5414c59f59", - "fixtures/empty_payload.json": "588c2573d99b953d490e3d9caaa392b804398b1f91d4f95492a01dd5e7e1f8ba", + "fixtures/empty_payload.json": "a8586332e32de5e052e48a420a8a61ec81b1274c1867527f43c37b5d6d9ba4ea", "fixtures/empty_payload.plaintext": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "fixtures/format2_empty_payload.dkc": "7aea2b5aa48b1a46053716f733d50fab9cd0b80b1be67631bcc06c5bb765dc21", "fixtures/format2_empty_payload.inspect.json": "d0bb7356d3970986e6b197640f0b3b38abe9fabf1740b745171b358aa28903ff", - "fixtures/format2_empty_payload.json": "0ddce7b0888be7220d1de108d645cfec9fe15d2e33bc00180ae0a0f417a0f1a9", + "fixtures/format2_empty_payload.json": "36884e42ff8c924578ea7ddf2e2d3d7c321159931e14cb464fea14eeedfd62a5", "fixtures/format2_empty_payload.plaintext": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "fixtures/format2_time_and_key_portable.dkc": "600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43", "fixtures/format2_time_and_key_portable.dkk": "095b7bc516a22bf0c2366f0af3cd48bfe857a2354d6e2a9b285278b95e450fe0", - "fixtures/format2_time_and_key_portable.dkk.json": "7365f2050bd124daf15b3c623254073389e47e43b13e09fc6e03e79b292ecf0a", + "fixtures/format2_time_and_key_portable.dkk.json": "4860910d695e0857b2747a5f7f416cb3ad1d6ab145b9f651577e47a1166ff93b", "fixtures/format2_time_and_key_portable.inspect.json": "522c9a98e5911c86f5f24f278971cf7c7588f6c88aaede3dd1129ee4e042868a", - "fixtures/format2_time_and_key_portable.json": "203e39ef29d74a2f28fb7d8530e01869ece0fa8c8e2c86e81a758eca15f39268", + "fixtures/format2_time_and_key_portable.json": "b97b209df5600833f8c46000835d1ae2ea76a34224948efdc511d46548ed8772", "fixtures/format2_time_and_key_portable.plaintext": "937492203d207d6fe36161b8696bf1f05b8b4cc56d855c44853f4b76aad3a05b", "fixtures/format2_time_and_key_recipients.dkc": "1a44fd8708c92e2e0a10cfcb1d864a71331ea9af25d97e1a42e969dc898959e3", "fixtures/format2_time_and_key_recipients.dkk": "2ad99b1556086ec311d7f0b3bd3aaba05e75f45c4fa22490b0d5e8bb0b1a222e", - "fixtures/format2_time_and_key_recipients.dkk.json": "57edcc56c16ba7e17e6b7ba079688f04431967a90ce3592f065c838a0c9b2a35", + "fixtures/format2_time_and_key_recipients.dkk.json": "1f264a936cc5f0b61d9fddc76667fc2f8fe054e4cee4ff9f65365a445ec851b1", "fixtures/format2_time_and_key_recipients.inspect.json": "d975a9eddd45f5d59618ea2455d574d807e57daf08585e840d07986f261bf099", - "fixtures/format2_time_and_key_recipients.json": "2a1dd1fa810f0b76ccee04320061ffc664c744da1206d60dbb14e0ac01b9635a", + "fixtures/format2_time_and_key_recipients.json": "d63b520c5a43c6e88c45511b182f01d18c07d4e73f7d9dc49c02166153cd0cd1", "fixtures/format2_time_and_key_recipients.plaintext": "0e9fd50e98a85953aa9cf07a11ee3c62bb3d7622f344f1c6ce744d1ed111659f", "fixtures/format2_time_and_key_sixteen.dkc": "7aaac5c18f216bf53df326ecc817179640a53408cf25dfd50488910a762dc381", "fixtures/format2_time_and_key_sixteen.inspect.json": "492cd0b0dca0030df9332b098d22b4f6aa4adfb57d5540de5325e3e6d5aa3667", - "fixtures/format2_time_and_key_sixteen.json": "5686913ae6c4dd94fc90a96d28d2f7f7ef6fdd5213416d27c7fd85a423be1023", + "fixtures/format2_time_and_key_sixteen.json": "9ddaedd5328e59f9158288cdfa831c138630809b2ac6fef76b2b595faa9c1109", "fixtures/format2_time_and_key_sixteen.plaintext": "e5abfb7b5fdbf297277b6cc4729c15d85435e890b653c2e2342b7031ecd9eab9", "fixtures/format2_time_only.dkc": "f5a40ac6b8a08a0c12db6114c2bca23522d6a77b512b509a217fb15f367813c4", "fixtures/format2_time_only.inspect.json": "40a8683f5204c7b6369558e4775ae6bb6fed978097e9e660de64c06c167b043e", - "fixtures/format2_time_only.json": "db863e7480eae1e1a4df985aa0cfb8456de67a1f0f5a6bcb3dd5fadf2837eb06", + "fixtures/format2_time_only.json": "07152c73127987c065c5cbde81595b664c206e950b5b0cebee70d0ad7afeefdc", "fixtures/format2_time_only.plaintext": "53b8ee821fb7b678e89d4f93da1812339f6cc1ab83aac6ed1432db99df784be5", "fixtures/format2_time_only_bloque256.dkc": "aae769c30d04920801d8b293d30864fbe223c9c9353ec2b4907a1ee1996e39f9", "fixtures/format2_time_only_bloque256.inspect.json": "767766414ad547f0ba95b40059e14b62c81b5489a2afcbc683bf227334d61be7", - "fixtures/format2_time_only_bloque256.json": "9c7db52db560ec1203e811a214d3c6dd5324dac586331332f774a3fccc6ad515", + "fixtures/format2_time_only_bloque256.json": "61b3ed1ceb521bba20a37faf2a783cf381eb03419b97ba93b3d6d4591576c5a7", "fixtures/format2_time_only_bloque256.plaintext": "53b8ee821fb7b678e89d4f93da1812339f6cc1ab83aac6ed1432db99df784be5", "fixtures/format2_time_only_extensions.dkc": "fb406100d5703a2e888983b3175ed34a09a34469cc722256e5cf535dd728fbe9", "fixtures/format2_time_only_extensions.inspect.json": "1595d793c1d35bfdaa36576b75f53d734a9e07c2a8a12036295dbaee7f5a7f5a", - "fixtures/format2_time_only_extensions.json": "5f48a438c8220951df7734fb4fd2172206827145597c43307d12514ce6c3c85a", + "fixtures/format2_time_only_extensions.json": "e59689ae6c53a49dcf46b7cafb64218c6adc8e0eb26c4e59f9dd8720d0fb6c2d", "fixtures/format2_time_only_extensions.plaintext": "1129768e195e2f1e50b7a6f926b6eebef120212c29b5642c8a662c503b2a9131", "fixtures/format3_area_1024.dkc": "41ea2eed0293e4fef7f4a307b7f16aaf1339f5bf6f4ded7a6a9ae1aebeb0133c", "fixtures/format3_area_1024.inspect.json": "06e6b347926242ae5540f16a053f6a3545743986989bc0be8c39918bce968686", - "fixtures/format3_area_1024.json": "d2722c99bf6c543a1eeb1fdd9cf57506d71b0a324b33458865b043698b7729d3", + "fixtures/format3_area_1024.json": "b88a27ceff8192fef1451c487f124fc1aed27e4036e00d6a748a4eb99bb7a472", "fixtures/format3_area_1024.plaintext": "043830350a287cba1fd50f6c063f70a74209895ff0cf03147bb4e5ccdfc206b5", "fixtures/format3_bloque256.dkc": "ff18444f434164ba8e7b26d38c76c7855dc6b0593b2fc8b4e9a95dbf9252d55d", "fixtures/format3_bloque256.inspect.json": "d0007080da5ce079c6ffa3a56bf8ce519d2846a31cc1082fd027f401e4f7bade", - "fixtures/format3_bloque256.json": "9fe4131d6e108a8ed2206ae33ced33ed6ca770b7a0111748cf208fcdd4a916c4", + "fixtures/format3_bloque256.json": "9df352fe1a893c04aca7f53d5038237a705115e1b9a4b5a9e2f05803193f8ab2", "fixtures/format3_bloque256.plaintext": "9ff2843e40bc1280dbfea8dce9386a42d06e8b43742c2cc6257540770cb53c73", "fixtures/format3_comment_only.dkc": "7f98a89413f08655bbbab28b96585dfa6173c1705dd81a900deba2100d19f2ef", "fixtures/format3_comment_only.inspect.json": "fb56eca8bf42c8c47fde4a1d6b2580fcff386f2f58b566820731dce388542196", - "fixtures/format3_comment_only.json": "8731bcb3641d7f99f63729e85f1e2960d3f38a6ac64bb3321369bfe3e21fa2b1", + "fixtures/format3_comment_only.json": "fb1ec6d149555ca98921192db087ca5c96623df6f9daa122e779d7afe9f676f8", "fixtures/format3_comment_only.plaintext": "bc5b05885e608f036d8a14fde8738a8c53b395b71c3bcee99c1eab37ea23e80e", "fixtures/format3_note.dkc": "da1bee54231252a0fd98439e24588125c5521f6e5a2c6641b499e6b22192c0eb", "fixtures/format3_note.inspect.json": "dcebb62407097c757bb62552be5d315155ba8a35dec175e95c3f6fddd6e81869", - "fixtures/format3_note.json": "b2778f8991c2ad9b464d0f45f495c94aae0da97a646df1ce401cf8847b9ce02c", + "fixtures/format3_note.json": "7808b4ec42ff87d0f2d1326fd67f92db78a50df408a209177ceac36dea7d3d16", "fixtures/format3_note.plaintext": "0468737c5141be936f59d2823122e87661d4ae155a1df036b4cad1ea6620c17b", "fixtures/format3_seal_unsupported.dkc": "ae3219fbdbd1de4cef6fade1a3fb3f6e5d5e2e8af54d9516b05f0a48136913ad", "fixtures/format3_seal_unsupported.inspect.json": "b3a7a1038192394c1f844fed994011646f3e78d1cf311c18cb5c936249b95f14", - "fixtures/format3_seal_unsupported.json": "96e9338350ade00226b56e8461e54fbfdda1266de4e63e4c25eef6f84c96801a", + "fixtures/format3_seal_unsupported.json": "276adbb77e8e60b432a16a8d1c1e8d802b030bfd2e86d9e9cdbf4fdaebd92cf0", "fixtures/format3_seal_unsupported.plaintext": "0f865221d26545762712271faf835cb2e9980f8fb15c9d3b94fb6747cf16c1df", "fixtures/format3_sealed.dkc": "dde5a072d8783227d28279d06d3d226a1fb967c766da626f889d1c6fd76ac9c7", "fixtures/format3_sealed.inspect.json": "b984a0755332bad838025e47f8e917b9f18b9bb5c068c2d1ef0070db8e42849c", - "fixtures/format3_sealed.json": "acfec2917e798cd1e3f2b38e1ff4f6cee7474ca6b7684e739c8143b291fe91e2", + "fixtures/format3_sealed.json": "285d01641e1446d0ccbf05c21f7291936784c188cbf8cb4c842839cda5612512", "fixtures/format3_sealed.plaintext": "aea0f5feb40acd81ca3b02dd21ea15510234da3ab52b374322f3206e7632d47b", "fixtures/format3_security_v2.dkc": "3d02b39ace010d74604554e378d22fe5ce00cecd998c0f797d657b17620b8912", "fixtures/format3_security_v2.inspect.json": "dba4d21f1d4e228a17c761bae9a4b8c5a91cd9c0123e3141d3782a43c139321e", - "fixtures/format3_security_v2.json": "78218ca96fdfe6629853c4b8826e2ba11ee010677e54169ba8286ff9d00c9d6a", + "fixtures/format3_security_v2.json": "b87d0b11ab22bfd452c095992f391512ac9d8744a154fe984b39f8eaa146c3b6", "fixtures/format3_security_v2.plaintext": "0c58ef40e4b1c7afde0f6e0a1f4ed7e3d45405757c5143a095f0c2b58042669f", "fixtures/format3_signature_unsupported.dkc": "e8e3106d8d73bb7b845062e0fe42af21df7d7cd8f63c335cab8dedb3e690df31", "fixtures/format3_signature_unsupported.inspect.json": "6db653db27604cb07e2cb2c23545fb68542c121e85002762f26c6d39e63bf00c", - "fixtures/format3_signature_unsupported.json": "427dd9201e57c2c6242722bc5b2882dd310225c40b883f9339cdd6c04f87b751", + "fixtures/format3_signature_unsupported.json": "5da3c941c1115668a406ba24d74cbd924468539dd12566282a2d35e65c90adff", "fixtures/format3_signature_unsupported.plaintext": "9fe05e6b3a463371b33fc6a81b81d538e572789a8d03ace9f752a931f4ca4728", "fixtures/format3_signed.dkc": "3c7d3c9e24c02853a0c7761b93bea1120b27fce396468d8d0f68e53aeb668c5e", "fixtures/format3_signed.inspect.json": "7c37054d542869e766147350e2fa72695f209d39a03726757008e2c2291b0e97", - "fixtures/format3_signed.json": "9d602cda39ce124b604410101a63bd981d21677f9bebb4eda5e4dedbd93531bb", + "fixtures/format3_signed.json": "14104ab66ff737a2297dfd8dd57a8226b40dc868548ba1150fd207957d9e208f", "fixtures/format3_signed.plaintext": "3de3ccab0ac74f95a76aa45c0f85e1749d4b4a051d87e81828eff6bf24372000", "fixtures/format3_signed_cms.dkc": "d658f8d5ac2c5550c07b8f8fd6883b2f6dc02ceafc47d436ea02d8950b2548d2", "fixtures/format3_signed_cms.inspect.json": "afadf530e8146687b25c03f26100ebff18e7f481e0ef09378816bad582270de5", - "fixtures/format3_signed_cms.json": "f05befb5fa9aafa2ee55fc7f3abe4832878b1950ae3b2e20915936ce20f12a9d", + "fixtures/format3_signed_cms.json": "89d42ccde98d9fc446ad7b25966aa824a8dd1e5d8b7ffd4ef9d164f0dcf250b0", "fixtures/format3_signed_cms.plaintext": "31c35eeeee856277b605fe44203a8f4786bb8f591eda3b6ee58252df5b3cf2f0", "fixtures/format3_single.dkc": "9f68664af8733255084be9036a100b75d27bd16106bf0acff94ce469dd1d1743", "fixtures/format3_single.inspect.json": "7878da921c17aada50e00d5911ea97e8558633a1684fb96acbd00d6f1b117529", - "fixtures/format3_single.json": "c99a175287c9555b74e8ae813326f3d7cdce0692a0144ee8e47158775970bcd4", + "fixtures/format3_single.json": "37c075d59f59ce464ebb3269631b8d51db72cf20db3dd25b5844615013506914", "fixtures/format3_single.plaintext": "74f9dd84d07e95a31e6dc063bf65ce414197acf84aac445eabc76fa4e3f24936", "fixtures/format3_time_and_key_portable.dkc": "680d29962e575689a31543df28433dae7737abd9a793e9cae92ef40920d09636", "fixtures/format3_time_and_key_portable.dkk": "54cc64d849395234b3e093e47f432b72781ccc13f455c9ef394e3554ab566751", - "fixtures/format3_time_and_key_portable.dkk.json": "36d343d729d126990754be34f0f67c9faf1529b7d8946e6b34b4d0de5b46b744", + "fixtures/format3_time_and_key_portable.dkk.json": "d00495adec91624c2954e5fd959bc02f44301b5b28d6da60870385754ac0c1d7", "fixtures/format3_time_and_key_portable.inspect.json": "f269af86f5bf84c22a1038fd78db146af93166150755eb1ca35cf15e224035b4", - "fixtures/format3_time_and_key_portable.json": "ca6623323ada21445c1c131cf278b060c2b22abc670f0889b30540f0abbb8dc6", + "fixtures/format3_time_and_key_portable.json": "8d779908e6902b11486bcfbd6403ff232f327f6c0fbcaca320a9db386c092243", "fixtures/format3_time_and_key_portable.plaintext": "e6684cf607c102bfa4d6977742d5a7520b0e09483282181bd6d8f5f4ba5f7726", "fixtures/format3_tree.dkc": "217f378faaf795f6a9c416b564fb8931bb2e896918aee870120fd14f9a5da7d1", "fixtures/format3_tree.inspect.json": "643a9dfdc2d0c44b8a1636909c66ed81bfd8c50df2a4cad6566832a8e47ba938", - "fixtures/format3_tree.json": "1d11d2f12603542039ac6b396ffec69e92bde2689fd54dfc9ef800b6b9f7746b", + "fixtures/format3_tree.json": "0fffb1ce26ed74f91b376a6358c0f6e82b31b6de12fcf97b452fc7ecb578cb68", "fixtures/format3_tree.plaintext": "f69ac5f450966f7d0e9161aa37451d4260b194a750e3e132c02e8a15ba561cfa", "fixtures/format3_unsigned.dkc": "317ab722ae3812a25ddd78b4c98c586363e5587c8d3634c881ce7c421af19168", "fixtures/format3_unsigned.inspect.json": "2f52f7286d6bd4c846ddd63b10b4989b25d17501a989a2e9deb25e4db0859e1a", - "fixtures/format3_unsigned.json": "8ab91d2505d8c29eb09a5ac6060b16c48f5b5618e82ac8f28ecbe926df4ec009", + "fixtures/format3_unsigned.json": "76b6f94b47fec30a0efc8f296d05de5d2f5ca77c46c2067b9d4edf3d3aedecf6", "fixtures/format3_unsigned.plaintext": "25527e5e2e1ce02056d4419fb89f7b0ce35e4920f93217f58dcf62a4377f8af5", "fixtures/time_and_key_portable.dkc": "2e97878078bae6358037a9c264f379a3cbe839f767d69836b0343f35657b2972", "fixtures/time_and_key_portable.dkk": "e528fa2c832c91119f0684bb9d6fb3c4c2d0d55183482890e7c4fe92f668426a", - "fixtures/time_and_key_portable.dkk.json": "b057c25c9950533c01122cb907a43242b7538a7d427f8fa3cfa34ab6dfb7e390", + "fixtures/time_and_key_portable.dkk.json": "7d3144763cb351114dbb6eb5b9e646562b0da0221df791420961be81f3825377", "fixtures/time_and_key_portable.inspect.json": "238c1f8ca6a6bf69f20bf26f5676e89a0b07e83b4362628560fc2f7522a202c9", - "fixtures/time_and_key_portable.json": "26467c1b6feafde9b6b49742a87bdb648c1effff6ac99b824561566282ea60ba", + "fixtures/time_and_key_portable.json": "9eeb5bf23ae1ba61ada85c673a2140df6972ef5eb0811db9d560203b3f92f020", "fixtures/time_and_key_portable.plaintext": "937492203d207d6fe36161b8696bf1f05b8b4cc56d855c44853f4b76aad3a05b", "fixtures/time_and_key_portable_extension.dkk": "0bf463a7c65627b7dda2234d728df89ec5b835816a2a37b91497d8fecc5ea548", - "fixtures/time_and_key_portable_extension.dkk.json": "89a96dd9dd1fe30187758d78211a6fbcb4b8cb7487e3a2f224e38874b246e834", + "fixtures/time_and_key_portable_extension.dkk.json": "7bcba4191cfed96f93652118bff23a52c00cf1fc7d4d6d3a9f8205c57c439dcd", "fixtures/time_and_key_recipients.dkc": "69ac110380f5d768b5b6afaa157a50ed17d8ceccfbd4604ffa5b6da38539b635", "fixtures/time_and_key_recipients.dkk": "19f6c47150c3194712d454f43c7392b7344e6b4e7b074d83e9ca5f563a8e072f", - "fixtures/time_and_key_recipients.dkk.json": "c3712a6afc1e0ad73615ec4329a0009261b32536fd630aff3b01f28b9384b6e9", + "fixtures/time_and_key_recipients.dkk.json": "2a87dc805a192034d09b02494207ed8e42cca3e45212367d96e4890b342c9a8c", "fixtures/time_and_key_recipients.inspect.json": "4b32c63d18febe0772837fbcd75a0c971e31378bf799201b720a9d32bdcd8c2b", - "fixtures/time_and_key_recipients.json": "a00a49e7140fff35f253e42d13d221cfb339a2e59b7b53dbb3b8a32dd00cfe4b", + "fixtures/time_and_key_recipients.json": "ad6da5141b310ddd7988647e1f999a3f962127a48f272f05f811a5f04ab41061", "fixtures/time_and_key_recipients.plaintext": "0e9fd50e98a85953aa9cf07a11ee3c62bb3d7622f344f1c6ce744d1ed111659f", "fixtures/time_only.dkc": "99e915810d595f1092700b728f5e5081d78efe83f5343e76325b1bcc2c33ccf2", "fixtures/time_only.inspect.json": "a4d45f945d6ba6616c01e120ac1133785e5279fea7dcab706b5feee287be8884", - "fixtures/time_only.json": "cfb7a43154189692ef3a1f08e9a12b5855df1b95c10ae13e05935160a3f9aaaa", + "fixtures/time_only.json": "ccd6fa044699911e0913e8fe3e8e29b074b6d7582373cb80b59521e2274a9a79", "fixtures/time_only.plaintext": "53b8ee821fb7b678e89d4f93da1812339f6cc1ab83aac6ed1432db99df784be5", "fixtures/time_only_extensions.dkc": "0446c9b73e267adcb24e5cc89afba2544a386ec9a050016e06517a4a57aa2085", "fixtures/time_only_extensions.inspect.json": "6f957b028da8a4a495b5e951ced0b91e0678128dac4e962b02d024b9439a0ba1", - "fixtures/time_only_extensions.json": "c5b6b253c03a95a3878538d98c8114041042f8dce8dbbb382727651781f4a146", + "fixtures/time_only_extensions.json": "58842a2cf5330ffd8f53fafe82d38ad1617d1f653b772731a777a388d21c2f4b", "fixtures/time_only_extensions.plaintext": "1129768e195e2f1e50b7a6f926b6eebef120212c29b5642c8a662c503b2a9131", - "vectors/cbor.json": "79d750994eafc4fa718b0997fbb0a70673dc08a129efcd7d0ddc2db922406913", - "vectors/dk1.json": "f5547be887d6ca405518636925018fdec22a5027009651705b07aec80151314a", - "vectors/ed25519_strict.json": "342d866584435b291832d34deb9ce17aef10d99db148b85443e39e9bed321d0a", - "vectors/head_schema.json": "3c7bcf57aa22943cd17005ea9ce426c0b3e7c365a0527a790b5e9e1973f9753f", - "vectors/inspect_differential.json": "e8c99d025ec761690e71ee0c6adfcfd5b680cdcb89024463d8ebbc24be6b0774", - "vectors/locator.json": "01370395ae53b363b5b0d0e2733fcb6fe0e20d7c64a5d20325ed3aa92beec859", - "vectors/mutations.json": "30719f97cba6e95fba0e077a5418cee50e216efd86080334c7d7e2d8c6dc247a", - "vectors/note.json": "d345861417b5fb8e3b1a56f39fdc58c7539cff85240496de3fd6edf7322a9ce2", - "vectors/padding.json": "53d71fc9679d6eda3ba7b7a15752927a1a5fe026bdbd7f93b0ce3569a6a4b22a", - "vectors/path_fold.json": "94c708bf04379984326f786ba1a954a94dc958fa06013c525e7f7a2c14f856bc", - "vectors/paths.json": "3466da7dd82d82c1c43fe956eb91e674065d159c9326e3bc0dcbbe2c6b774251", - "vectors/profile_quicknet.json": "c15ecb111635ecae2084da8511efbee133e97ff07c1c951658b036ce05b69781", - "vectors/quicknet_rounds.json": "0f11bf5c5da88b1e929bb39439001a3a1f8447a85a4b3a25296d40d71a261e50", - "vectors/security.json": "158df388fe881b75989e319eaadc88437b5031cd62f6c8cfc9cc421c3eacff89", - "vectors/security_cms.json": "1ef9c74f1998fc06ab459ab885e3654bf4375f5baa276ea2a1de3f08e64a32b4", - "vectors/tlock_ibe.json": "27e9d9ebac4f07700661d2b4c524b10d065c9698e9acc68baa3d2c01bdbb24f2", - "vectors/wordkey.json": "882593e1ed63cb5cfa6231a1bdc4060a04be5233db1a971d9dcbfff3031c071a" + "vectors/cbor.json": "5700b20c618da227eb401f0a16cc1d6ee018394677e5580684df8164ae7c9eb0", + "vectors/dk1.json": "877d512c08fa70375aeb55f13c7741f4898f44cf0eda82fa88bca39745ca3017", + "vectors/ed25519_strict.json": "d331860a452e2224b4b4b683b261977fa088d1f12599b2daa0d9a07dc97f8739", + "vectors/head_schema.json": "60f88ef07e45e2a361cd78ccb2fba69a70068ea65c2a2ac4de446dd2fd472050", + "vectors/inspect_differential.json": "2fadb915a8c8a0f9e4b243b989b82ceb02edd2085be94a078139aae2bf5e142b", + "vectors/locator.json": "00111437a451398f28c72226963eb3a74461a8f0997a09b27730a41dbc32dca9", + "vectors/mutations.json": "99dbc2259456494a3b03cf787794d16cb2be119f55c419b26b1874bf5503ad13", + "vectors/note.json": "3f8951db5362946cee20f32facef404c1c5d1f044ab64dce0fe61f54cab57a90", + "vectors/padding.json": "c1a0599b9239132ea97a089cfcc72448d7f5bfc03c17beb8b3768bf45340334c", + "vectors/path_fold.json": "cc867c346670e0de69b64ac6acd23b9cbb13b59192b694f4b3c1ddc7641addb2", + "vectors/paths.json": "bfdbcc9ceb8f6f1220bc998e00b6d32061e49bb8e6fcd3d903a43521b86e3388", + "vectors/profile_quicknet.json": "c5b9a57db1e9c64a226c08ab4a51ffcb2e29599a74b5b145308a13ba8f195445", + "vectors/quicknet_rounds.json": "b053c423d75a602d23777aa9fe0ec7860dbfb6ee42275a88a880731338c4ffe4", + "vectors/security.json": "41da683fb4f0275c903d7e79029fed885c7b94e03c0160ab94bad6acf325f0b5", + "vectors/security_cms.json": "13e0deece70f640e4507adc33c9df25545fc30a4b0a543cff07dcdddc8923ea4", + "vectors/tlock_ibe.json": "fdc846000dd4da5fcb0d976994e07e4acf335819cf434a2badc973e90aa5dbfe", + "vectors/wordkey.json": "e662948f70f9de46ebfb13b114ed92efae9856139fae3ddd97127f82fb5515c4" } } diff --git a/testdata/fixtures/empty_payload.json b/testdata/fixtures/empty_payload.json index 5635a6a..75c98b2 100644 --- a/testdata/fixtures/empty_payload.json +++ b/testdata/fixtures/empty_payload.json @@ -1,6 +1,6 @@ { "description": "time_only capsule with an empty payload", - "spec": "0.11", + "spec": "0.12", "format": 1, "file": "empty_payload.dkc", "sha256": "871e9bf05b52bbae17f3adfbbf97b46e7f0e53aa8f57bcaa506e43f36f53a9d4", diff --git a/testdata/fixtures/format2_empty_payload.json b/testdata/fixtures/format2_empty_payload.json index e8fdf9b..009a53f 100644 --- a/testdata/fixtures/format2_empty_payload.json +++ b/testdata/fixtures/format2_empty_payload.json @@ -1,6 +1,6 @@ { "description": "format 2 time_only capsule with an empty content: L = 0, P = 256", - "spec": "0.11", + "spec": "0.12", "format": 2, "file": "format2_empty_payload.dkc", "sha256": "7aea2b5aa48b1a46053716f733d50fab9cd0b80b1be67631bcc06c5bb765dc21", diff --git a/testdata/fixtures/format2_time_and_key_portable.dkk.json b/testdata/fixtures/format2_time_and_key_portable.dkk.json index 174c9a6..1ab2d16 100644 --- a/testdata/fixtures/format2_time_and_key_portable.dkk.json +++ b/testdata/fixtures/format2_time_and_key_portable.dkk.json @@ -1,6 +1,6 @@ { "description": "portable X25519 .dkk of format2_time_and_key_portable.dkc", - "spec": "0.11", + "spec": "0.12", "file": "format2_time_and_key_portable.dkk", "sha256": "095b7bc516a22bf0c2366f0af3cd48bfe857a2354d6e2a9b285278b95e450fe0", "credential_id": "e3c7be83cbf1fbd6b115c96411b3bd01", diff --git a/testdata/fixtures/format2_time_and_key_portable.json b/testdata/fixtures/format2_time_and_key_portable.json index 48e9301..059ee59 100644 --- a/testdata/fixtures/format2_time_and_key_portable.json +++ b/testdata/fixtures/format2_time_and_key_portable.json @@ -1,6 +1,6 @@ { "description": "format 2 time_and_key capsule with one credential, a portable .dkk, and 15 dummies", - "spec": "0.11", + "spec": "0.12", "format": 2, "file": "format2_time_and_key_portable.dkc", "sha256": "600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43", diff --git a/testdata/fixtures/format2_time_and_key_recipients.dkk.json b/testdata/fixtures/format2_time_and_key_recipients.dkk.json index 077f928..e96aa23 100644 --- a/testdata/fixtures/format2_time_and_key_recipients.dkk.json +++ b/testdata/fixtures/format2_time_and_key_recipients.dkk.json @@ -1,6 +1,6 @@ { "description": "portable X25519 .dkk of format2_time_and_key_recipients.dkc", - "spec": "0.11", + "spec": "0.12", "file": "format2_time_and_key_recipients.dkk", "sha256": "2ad99b1556086ec311d7f0b3bd3aaba05e75f45c4fa22490b0d5e8bb0b1a222e", "credential_id": "93cedf68421710e83908ec683b104436", diff --git a/testdata/fixtures/format2_time_and_key_recipients.json b/testdata/fixtures/format2_time_and_key_recipients.json index 9cf68cf..50a5e43 100644 --- a/testdata/fixtures/format2_time_and_key_recipients.json +++ b/testdata/fixtures/format2_time_and_key_recipients.json @@ -1,6 +1,6 @@ { "description": "format 2 time_and_key capsule for three known X25519 recipients and a portable .dkk, and 12 dummies", - "spec": "0.11", + "spec": "0.12", "format": 2, "file": "format2_time_and_key_recipients.dkc", "sha256": "1a44fd8708c92e2e0a10cfcb1d864a71331ea9af25d97e1a42e969dc898959e3", diff --git a/testdata/fixtures/format2_time_and_key_sixteen.json b/testdata/fixtures/format2_time_and_key_sixteen.json index f68f0e8..447d153 100644 --- a/testdata/fixtures/format2_time_and_key_sixteen.json +++ b/testdata/fixtures/format2_time_and_key_sixteen.json @@ -1,6 +1,6 @@ { "description": "format 2 time_and_key capsule for sixteen known X25519 recipients, without dummies", - "spec": "0.11", + "spec": "0.12", "format": 2, "file": "format2_time_and_key_sixteen.dkc", "sha256": "7aaac5c18f216bf53df326ecc817179640a53408cf25dfd50488910a762dc381", diff --git a/testdata/fixtures/format2_time_only.json b/testdata/fixtures/format2_time_only.json index b512421..92fda84 100644 --- a/testdata/fixtures/format2_time_only.json +++ b/testdata/fixtures/format2_time_only.json @@ -1,6 +1,6 @@ { "description": "format 2 time_only capsule, padding code 2 (reforzado): L = 78000, P = 79872, two STREAM chunks", - "spec": "0.11", + "spec": "0.12", "format": 2, "file": "format2_time_only.dkc", "sha256": "f5a40ac6b8a08a0c12db6114c2bca23522d6a77b512b509a217fb15f367813c4", diff --git a/testdata/fixtures/format2_time_only_bloque256.json b/testdata/fixtures/format2_time_only_bloque256.json index e33a559..4998ff4 100644 --- a/testdata/fixtures/format2_time_only_bloque256.json +++ b/testdata/fixtures/format2_time_only_bloque256.json @@ -1,6 +1,6 @@ { "description": "format 2 time_only capsule with the content of format2_time_only and padding code 1 (bloque256): L = 78000, P = 78080", - "spec": "0.11", + "spec": "0.12", "format": 2, "file": "format2_time_only_bloque256.dkc", "sha256": "aae769c30d04920801d8b293d30864fbe223c9c9353ec2b4907a1ee1996e39f9", diff --git a/testdata/fixtures/format2_time_only_extensions.json b/testdata/fixtures/format2_time_only_extensions.json index 5ed3d23..aaf7d3b 100644 --- a/testdata/fixtures/format2_time_only_extensions.json +++ b/testdata/fixtures/format2_time_only_extensions.json @@ -1,6 +1,6 @@ { "description": "format 2 time_only capsule with a noncritical PUBLIC_HEADER extension and a noncritical CONTROL_CBOR extension", - "spec": "0.11", + "spec": "0.12", "format": 2, "file": "format2_time_only_extensions.dkc", "sha256": "fb406100d5703a2e888983b3175ed34a09a34469cc722256e5cf535dd728fbe9", diff --git a/testdata/fixtures/format3_area_1024.json b/testdata/fixtures/format3_area_1024.json index b3a0fd8..8e339d9 100644 --- a/testdata/fixtures/format3_area_1024.json +++ b/testdata/fixtures/format3_area_1024.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule with a security area of 1024 bytes, as a later version may write it, holding the empty security", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_area_1024.dkc", "sha256": "41ea2eed0293e4fef7f4a307b7f16aaf1339f5bf6f4ded7a6a9ae1aebeb0133c", diff --git a/testdata/fixtures/format3_bloque256.json b/testdata/fixtures/format3_bloque256.json index 71902ca..a09df15 100644 --- a/testdata/fixtures/format3_bloque256.json +++ b/testdata/fixtures/format3_bloque256.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule with padding code 1 (bloque256) and one file of 20000 bytes", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_bloque256.dkc", "sha256": "ff18444f434164ba8e7b26d38c76c7855dc6b0593b2fc8b4e9a95dbf9252d55d", diff --git a/testdata/fixtures/format3_comment_only.json b/testdata/fixtures/format3_comment_only.json index 455aa3e..a6e8d3d 100644 --- a/testdata/fixtures/format3_comment_only.json +++ b/testdata/fixtures/format3_comment_only.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule with a comment of two lines, the second one with a TAB, a declared author and no files", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_comment_only.dkc", "sha256": "7f98a89413f08655bbbab28b96585dfa6173c1705dd81a900deba2100d19f2ef", diff --git a/testdata/fixtures/format3_note.json b/testdata/fixtures/format3_note.json index f927304..11538d3 100644 --- a/testdata/fixtures/format3_note.json +++ b/testdata/fixtures/format3_note.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule with a single file, nota.txt, and the public note «Cartas del viaje a Lisboa» in the noncritical array of PUBLIC_HEADER (spec v0.11, §24.1)", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_note.dkc", "sha256": "da1bee54231252a0fd98439e24588125c5521f6e5a2c6641b499e6b22192c0eb", diff --git a/testdata/fixtures/format3_seal_unsupported.json b/testdata/fixtures/format3_seal_unsupported.json index 5eff7fa..72cb7c8 100644 --- a/testdata/fixtures/format3_seal_unsupported.json +++ b/testdata/fixtures/format3_seal_unsupported.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule with an author-signature of alg 4294967295, as in format3_signature_unsupported, and a seal of seal_type 4294967295, reserved for tests, with a random token of 32 bytes: verdicts F1 and S1", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_seal_unsupported.dkc", "sha256": "ae3219fbdbd1de4cef6fade1a3fb3f6e5d5e2e8af54d9516b05f0a48136913ad", diff --git a/testdata/fixtures/format3_sealed.json b/testdata/fixtures/format3_sealed.json index 06fc87c..17e6c2e 100644 --- a/testdata/fixtures/format3_sealed.json +++ b/testdata/fixtures/format3_sealed.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule with a single file, nota.txt, signed with alg 1 by the test key of format3_signed and sealed with seal_type 2 by a test time-stamping authority before the round time: verdicts F4 and S4, with SEAL_SUBJECT and the token in the record", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_sealed.dkc", "sha256": "dde5a072d8783227d28279d06d3d226a1fb967c766da626f889d1c6fd76ac9c7", diff --git a/testdata/fixtures/format3_security_v2.json b/testdata/fixtures/format3_security_v2.json index 15700b5..425a2d5 100644 --- a/testdata/fixtures/format3_security_v2.json +++ b/testdata/fixtures/format3_security_v2.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule whose security is of version 2: verdict X", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_security_v2.dkc", "sha256": "3d02b39ace010d74604554e378d22fe5ce00cecd998c0f797d657b17620b8912", diff --git a/testdata/fixtures/format3_signature_unsupported.json b/testdata/fixtures/format3_signature_unsupported.json index 0b7aaae..fcaa121 100644 --- a/testdata/fixtures/format3_signature_unsupported.json +++ b/testdata/fixtures/format3_signature_unsupported.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule with an author-signature of alg 4294967295, a random key of 32 bytes and a random signature of 64: verdicts F1 and S0", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_signature_unsupported.dkc", "sha256": "e8e3106d8d73bb7b845062e0fe42af21df7d7cd8f63c335cab8dedb3e690df31", diff --git a/testdata/fixtures/format3_signed.json b/testdata/fixtures/format3_signed.json index b24064c..3a72218 100644 --- a/testdata/fixtures/format3_signed.json +++ b/testdata/fixtures/format3_signed.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule with a single file, nota.txt, signed with alg 1 by a test key whose seed the record gives: verdict F4, and the commitments and the message of the signature", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_signed.dkc", "sha256": "3c7d3c9e24c02853a0c7761b93bea1120b27fce396468d8d0f68e53aeb668c5e", diff --git a/testdata/fixtures/format3_signed_cms.json b/testdata/fixtures/format3_signed_cms.json index 84b6165..27af426 100644 --- a/testdata/fixtures/format3_signed_cms.json +++ b/testdata/fixtures/format3_signed_cms.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule with a single file, nota.txt, signed with alg 2 by two test certificates, an ECDSA P-256 one and an RSA 2048 one, each sealed by a test time-stamping authority before the round time: verdict F6, with the certificates, the commitments, SIGNERS and the result of each signer in the record", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_signed_cms.dkc", "sha256": "d658f8d5ac2c5550c07b8f8fd6883b2f6dc02ceafc47d436ea02d8950b2548d2", diff --git a/testdata/fixtures/format3_single.json b/testdata/fixtures/format3_single.json index 002ad2a..f541493 100644 --- a/testdata/fixtures/format3_single.json +++ b/testdata/fixtures/format3_single.json @@ -1,6 +1,6 @@ { "description": "format 3 time_only capsule with a single file, nota.txt, with its mtime", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_single.dkc", "sha256": "9f68664af8733255084be9036a100b75d27bd16106bf0acff94ce469dd1d1743", diff --git a/testdata/fixtures/format3_time_and_key_portable.dkk.json b/testdata/fixtures/format3_time_and_key_portable.dkk.json index 0882b2b..01d4e23 100644 --- a/testdata/fixtures/format3_time_and_key_portable.dkk.json +++ b/testdata/fixtures/format3_time_and_key_portable.dkk.json @@ -1,6 +1,6 @@ { "description": "portable X25519 .dkk of format3_time_and_key_portable.dkc", - "spec": "0.11", + "spec": "0.12", "file": "format3_time_and_key_portable.dkk", "sha256": "54cc64d849395234b3e093e47f432b72781ccc13f455c9ef394e3554ab566751", "credential_id": "bdb483fba42daf0b409f44d23033f362", diff --git a/testdata/fixtures/format3_time_and_key_portable.json b/testdata/fixtures/format3_time_and_key_portable.json index b17e49e..7fe5cf5 100644 --- a/testdata/fixtures/format3_time_and_key_portable.json +++ b/testdata/fixtures/format3_time_and_key_portable.json @@ -1,6 +1,6 @@ { "description": "format 3 time_and_key capsule with one credential, a portable .dkk, and 15 dummies", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_time_and_key_portable.dkc", "sha256": "680d29962e575689a31543df28433dae7737abd9a793e9cae92ef40920d09636", diff --git a/testdata/fixtures/format3_tree.json b/testdata/fixtures/format3_tree.json index 19145d1..0c3d770 100644 --- a/testdata/fixtures/format3_tree.json +++ b/testdata/fixtures/format3_tree.json @@ -1,6 +1,6 @@ { "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": "0.11", + "spec": "0.12", "format": 3, "file": "format3_tree.dkc", "sha256": "217f378faaf795f6a9c416b564fb8931bb2e896918aee870120fd14f9a5da7d1", diff --git a/testdata/fixtures/format3_unsigned.json b/testdata/fixtures/format3_unsigned.json index c94e6a8..534563a 100644 --- a/testdata/fixtures/format3_unsigned.json +++ b/testdata/fixtures/format3_unsigned.json @@ -1,6 +1,6 @@ { "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", - "spec": "0.11", + "spec": "0.12", "format": 3, "file": "format3_unsigned.dkc", "sha256": "317ab722ae3812a25ddd78b4c98c586363e5587c8d3634c881ce7c421af19168", diff --git a/testdata/fixtures/time_and_key_portable.dkk.json b/testdata/fixtures/time_and_key_portable.dkk.json index 32c7264..be683aa 100644 --- a/testdata/fixtures/time_and_key_portable.dkk.json +++ b/testdata/fixtures/time_and_key_portable.dkk.json @@ -1,6 +1,6 @@ { "description": "portable X25519 .dkk of time_and_key_portable.dkc", - "spec": "0.11", + "spec": "0.12", "file": "time_and_key_portable.dkk", "sha256": "e528fa2c832c91119f0684bb9d6fb3c4c2d0d55183482890e7c4fe92f668426a", "credential_id": "3955e944a3c60cfa1fd6485e9693c77d", diff --git a/testdata/fixtures/time_and_key_portable.json b/testdata/fixtures/time_and_key_portable.json index 535b9e9..b4de7a8 100644 --- a/testdata/fixtures/time_and_key_portable.json +++ b/testdata/fixtures/time_and_key_portable.json @@ -1,6 +1,6 @@ { "description": "time_and_key capsule whose only recipient is a portable .dkk", - "spec": "0.11", + "spec": "0.12", "format": 1, "file": "time_and_key_portable.dkc", "sha256": "2e97878078bae6358037a9c264f379a3cbe839f767d69836b0343f35657b2972", diff --git a/testdata/fixtures/time_and_key_portable_extension.dkk.json b/testdata/fixtures/time_and_key_portable_extension.dkk.json index 904069d..e32ab2a 100644 --- a/testdata/fixtures/time_and_key_portable_extension.dkk.json +++ b/testdata/fixtures/time_and_key_portable_extension.dkk.json @@ -1,6 +1,6 @@ { "description": "portable X25519 .dkk of time_and_key_portable.dkc with a noncritical extension: the credential of time_and_key_portable.dkk re-issued with org.example.delivery", - "spec": "0.11", + "spec": "0.12", "file": "time_and_key_portable_extension.dkk", "sha256": "0bf463a7c65627b7dda2234d728df89ec5b835816a2a37b91497d8fecc5ea548", "credential_id": "3955e944a3c60cfa1fd6485e9693c77d", diff --git a/testdata/fixtures/time_and_key_recipients.dkk.json b/testdata/fixtures/time_and_key_recipients.dkk.json index 8d63d98..9d3cab7 100644 --- a/testdata/fixtures/time_and_key_recipients.dkk.json +++ b/testdata/fixtures/time_and_key_recipients.dkk.json @@ -1,6 +1,6 @@ { "description": "portable X25519 .dkk of time_and_key_recipients.dkc", - "spec": "0.11", + "spec": "0.12", "file": "time_and_key_recipients.dkk", "sha256": "19f6c47150c3194712d454f43c7392b7344e6b4e7b074d83e9ca5f563a8e072f", "credential_id": "b89292aedf6d05d584cec9a871ce8735", diff --git a/testdata/fixtures/time_and_key_recipients.json b/testdata/fixtures/time_and_key_recipients.json index 5d83caa..ea18209 100644 --- a/testdata/fixtures/time_and_key_recipients.json +++ b/testdata/fixtures/time_and_key_recipients.json @@ -1,6 +1,6 @@ { "description": "time_and_key capsule for two known X25519 recipients and a portable .dkk", - "spec": "0.11", + "spec": "0.12", "format": 1, "file": "time_and_key_recipients.dkc", "sha256": "69ac110380f5d768b5b6afaa157a50ed17d8ceccfbd4604ffa5b6da38539b635", diff --git a/testdata/fixtures/time_only.json b/testdata/fixtures/time_only.json index ac9576d..5f226a2 100644 --- a/testdata/fixtures/time_only.json +++ b/testdata/fixtures/time_only.json @@ -1,6 +1,6 @@ { "description": "time_only capsule, two STREAM chunks, no extensions", - "spec": "0.11", + "spec": "0.12", "format": 1, "file": "time_only.dkc", "sha256": "99e915810d595f1092700b728f5e5081d78efe83f5343e76325b1bcc2c33ccf2", diff --git a/testdata/fixtures/time_only_extensions.json b/testdata/fixtures/time_only_extensions.json index 65e2fd9..d1109fd 100644 --- a/testdata/fixtures/time_only_extensions.json +++ b/testdata/fixtures/time_only_extensions.json @@ -1,6 +1,6 @@ { "description": "time_only capsule with a noncritical PUBLIC_HEADER extension and a noncritical CONTROL_CBOR extension", - "spec": "0.11", + "spec": "0.12", "format": 1, "file": "time_only_extensions.dkc", "sha256": "0446c9b73e267adcb24e5cc89afba2544a386ec9a050016e06517a4a57aa2085", diff --git a/testdata/vectors/cbor.json b/testdata/vectors/cbor.json index fafd867..c642cf8 100644 --- a/testdata/vectors/cbor.json +++ b/testdata/vectors/cbor.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "CBOR profile of spec §58 and the schemas of spec/datekeys.cddl, generated by the reference implementation. accept and reject are walked as one data item of the profile with the limits of walk; schemas are decoded with the decoder of their schema. See testdata/README.md.", "walk": { "max_depth": 3, diff --git a/testdata/vectors/dk1.json b/testdata/vectors/dk1.json index f9e4d3e..a56b565 100644 --- a/testdata/vectors/dk1.json +++ b/testdata/vectors/dk1.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "Canonical dk1_ strings and rejected encodings (spec §18, §19, §66), generated by the reference implementation.", "vectors": [ { diff --git a/testdata/vectors/ed25519_strict.json b/testdata/vectors/ed25519_strict.json index 027ba46..0f431aa 100644 --- a/testdata/vectors/ed25519_strict.json +++ b/testdata/vectors/ed25519_strict.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "Ed25519 signatures and the result of the strict profile of the author signature (spec v0.11, §29.9), after the cases of «Taming the many EdDSAs»; stdlib is the result of crypto/ed25519 of Go, for the record. Generated by the reference implementation. See testdata/README.md.", "vectors": [ { diff --git a/testdata/vectors/head_schema.json b/testdata/vectors/head_schema.json index ea79eef..dbaa389 100644 --- a/testdata/vectors/head_schema.json +++ b/testdata/vectors/head_schema.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "HEAD_CBOR of format 3 (spec §29.4 to §29.6) and the result of decoding it with no extension known, generated by the reference implementation: layer 2 (type tag and version), layer 3 (the CDDL with R1 and R8), then layer 4 in key order (spec §69.1). See testdata/README.md.", "heads": [ { diff --git a/testdata/vectors/inspect_differential.json b/testdata/vectors/inspect_differential.json index dbd21d3..574ac98 100644 --- a/testdata/vectors/inspect_differential.json +++ b/testdata/vectors/inspect_differential.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "Differential corpus of the pre-unlock checks (spec §63 steps 1 to 8): deterministic mutations of the official .dkc fixtures with the verdict of the reference implementation. See testdata/README.md.", "format": "Each mutation is bases[base].file (in testdata/fixtures) with its edits applied. An edit is [at, delete, insert]: the delete bytes at offset at of the base are replaced by the bytes of the hex string insert. The edits of one mutation refer to offsets of the unmodified base, are sorted by offset and do not overlap. result is the verdict of steps 1 to 8 of spec §63 (capsule.Inspect, the Quicknet profile pinned, no extension known, no network, no secret): ok, or the normative error code, with step the step that failed. kind names the generator of the mutation and is informative.", "seed": 20260925, diff --git a/testdata/vectors/locator.json b/testdata/vectors/locator.json index 8fc3cf8..0114c01 100644 --- a/testdata/vectors/locator.json +++ b/testdata/vectors/locator.json @@ -1,6 +1,6 @@ { "description": "The extension datekeys.capsule of a .dkk and what it points to (spec v0.12, 44.1): an envelope of age with its header apart from its rest, the rest hidden in a host file, the locator sealed with tlock for round 1000, and the data of the extension. On the same envelope, what a reader rejects and what it uses (64): addresses, a locator with rejected and usable addresses, resources of the rest, data of the extension and plaintexts of the locator. Frozen. See testdata/README.md.", - "spec": "0.11", + "spec": "0.12", "round": 1000, "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", "note": "Cartas del viaje a Lisboa", diff --git a/testdata/vectors/mutations.json b/testdata/vectors/mutations.json index e81eb70..b3ddd19 100644 --- a/testdata/vectors/mutations.json +++ b/testdata/vectors/mutations.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "Mutation corpus of spec §64 and further cases of capsule.TestMutationCorpus, generated by the reference implementation: each case is a .dkc and what the reader is given, with the normative error and the step of spec §63 at which capsule.Open fails. See testdata/README.md.", "cases": [ { diff --git a/testdata/vectors/note.json b/testdata/vectors/note.json index afaac31..cdcc148 100644 --- a/testdata/vectors/note.json +++ b/testdata/vectors/note.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "The data of the public note, datekeys.note version 1 in the noncritical array of PUBLIC_HEADER (spec §24.1): the text in UTF-8, from 1 to 1024 bytes, that meets the rules of the declared author of §29.6. See testdata/README.md.", "notes": [ { diff --git a/testdata/vectors/padding.json b/testdata/vectors/padding.json index 1fee966..837f2d3 100644 --- a/testdata/vectors/padding.json +++ b/testdata/vectors/padding.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "Padding rules of the payload of a format 2 capsule (spec §29.1): for each content length L, P with code 1 (bloque256) and code 2 (reforzado), and the length of PAYLOAD_AGE for each. e, s and last_bits are informative. Generated by the reference implementation. See testdata/README.md.", "l_max": 8936830510563328, "vectors": [ diff --git a/testdata/vectors/path_fold.json b/testdata/vectors/path_fold.json index cd4ccea..5aa2709 100644 --- a/testdata/vectors/path_fold.json +++ b/testdata/vectors/path_fold.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "The key of R7 (spec §29.5) of segments, with the Unicode 18.0.0 tables of §29.5.1, generated by the reference implementation: nfd is NFD(segment) and key is NFD(fold(NFD(s'))), s' the segment without ZWNJ, ZWJ, VS15 and VS16. See testdata/README.md.", "unicode_version": "18.0.0", "tables_digest": "07cf5d54aea1cd13a3ecef14a06976cc49a3cdad755cf9bc10395178b93aeb07", diff --git a/testdata/vectors/paths.json b/testdata/vectors/paths.json index e8d4318..b6df43b 100644 --- a/testdata/vectors/paths.json +++ b/testdata/vectors/paths.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "Paths of a format 3 head (spec §29.5) with the Unicode 18.0.0 and best-fit tables of §29.5.1, generated by the reference implementation. paths: one path and the rules of one entry, R2 to R6c and R10; trees: the paths of a head, of 0 bytes each, and the result of decoding it. See testdata/README.md.", "unicode_version": "18.0.0", "tables_digest": "07cf5d54aea1cd13a3ecef14a06976cc49a3cdad755cf9bc10395178b93aeb07", diff --git a/testdata/vectors/profile_quicknet.json b/testdata/vectors/profile_quicknet.json index de68fdf..00fc2e5 100644 --- a/testdata/vectors/profile_quicknet.json +++ b/testdata/vectors/profile_quicknet.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "Quicknet Provider Profile V1: exact Deterministic CBOR and profile_hash (spec §11, §12, §75 item 2), generated by the reference implementation.", "profile_id": "datekeys:quicknet:v1", "provider": "drand", diff --git a/testdata/vectors/quicknet_rounds.json b/testdata/vectors/quicknet_rounds.json index 20c2ddc..f0cc376 100644 --- a/testdata/vectors/quicknet_rounds.json +++ b/testdata/vectors/quicknet_rounds.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "profile": "datekeys:quicknet:v1", "description": "Quicknet date to round resolution (spec §15, §16, §65), generated by the reference implementation.", "vectors": [ diff --git a/testdata/vectors/security.json b/testdata/vectors/security.json index f1bb4fc..2b45062 100644 --- a/testdata/vectors/security.json +++ b/testdata/vectors/security.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "SECURITY_CBOR of format 3, exactly its SECURITY_LEN bytes, the verdicts of the signature and of the seal in the context of the file, and their lines (spec §29.3, §29.7, §29.9). See testdata/README.md.", "context": { "control_commit": "0101010101010101010101010101010101010101010101010101010101010101", diff --git a/testdata/vectors/security_cms.json b/testdata/vectors/security_cms.json index ff3c0a0..95c84db 100644 --- a/testdata/vectors/security_cms.json +++ b/testdata/vectors/security_cms.json @@ -1,6 +1,6 @@ { "description": "SECURITY_CBOR with an author signature of alg 2 or a time seal of seal_type 2, the context of its capsule, and the verdicts, the result of each signer and the lines of spec v0.12 29.7, 29.10 and 29.11. Certificates and tokens are made once with test keys and the file is frozen. See testdata/README.md.", - "spec": "0.11", + "spec": "0.12", "cases": [ { "name": "alg 2: two signers, each sealed before the round time: F6", diff --git a/testdata/vectors/tlock_ibe.json b/testdata/vectors/tlock_ibe.json index dc16e05..31602b3 100644 --- a/testdata/vectors/tlock_ibe.json +++ b/testdata/vectors/tlock_ibe.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "H2 of the IBE-CCA of tlock (spec §63 step 11): SHA-256 of \"IBE-H2\" and the 576 bytes of an element of GT, c1 before c0 at every level of the tower and each coordinate of Fp in 48 bytes big-endian (the order of kilic/bls12-381), truncated to 16 bytes. Generated by the reference implementation with drand/kyber-bls12381, the pairing of tlock.", "vectors": [ { diff --git a/testdata/vectors/wordkey.json b/testdata/vectors/wordkey.json index 3dfe96d..e0b2f03 100644 --- a/testdata/vectors/wordkey.json +++ b/testdata/vectors/wordkey.json @@ -1,5 +1,5 @@ { - "spec": "0.11", + "spec": "0.12", "description": "The key of words (spec §38.1): the words of a text, after NFD, without U+0300 to U+036F, in simple lower case of Unicode 18.0.0 and split by the spaces of the list; what a writer refuses; and the identity, PBKDF2-HMAC-SHA256 of 600000 rounds, for a chain hash, a round and a capsule_id. See testdata/README.md.", "normalize": [ {