You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DateKeys-App/src/lib/dkc/testing/signing-vectors.json

2045 lines
779 KiB

The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
{
"cases": [
{
"draws": [
{
"hex": "4ac572f0da468da3d8d79c10898d04e7cad4b3e241dac31f6b9d0aab810056d2",
"n": 32
},
{
"hex": "5b0482aff309bd4164bd0e1cecd77d0c",
"n": 16
},
{
"hex": "74f807b7f943304778e2e152cbad64d15287df938003901f9553d9348dc35d86",
"n": 32
},
{
"hex": "6f74cfcefef21a87cb4dc897ab8756d3",
"n": 16
},
{
"hex": "9363730807b18201f44844dd8395e727",
"n": 16
},
{
"hex": "e85968ffb40674e9d46ecb3724ee267d",
"n": 16
},
{
"hex": "59505b7c3a6a568c873ab62b0bff6205",
"n": 16
},
{
"hex": "a8e351aaad44aaf1cb0e8b6cc2987cc4",
"n": 16
},
{
"hex": "64195a9b33a7c777d12a9c0413e7fe73",
"n": 16
},
{
"hex": "1408e5fd4feafb6c7587bc122644f249",
"n": 16
},
{
"hex": "4f523120045e660ebbb05fc31a463561",
"n": 16
},
{
"hex": "db5f6ebfbcd29668d929642b3f31d1ee",
"n": 16
},
{
"hex": "00e6fd48a6fe79f992dc5f32d32163acdf459a8bb9312131fb17da02b90048d0",
"n": 32
},
{
"hex": "b1393d97c7d367b3b43ebfda9e98f8ca",
"n": 16
}
],
"hooks": {
"author_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a623530396333613664373031633136623838636166646336333863363634343463336263316436356566626436373237303136366631623034666364366363390a",
"author_public": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"author_signature": "fe0151cf40957c528692b9042767c199a2f11b91bbda35ab88552645b0d1023c87720e022896ea3daa958a93c529b142af3fc3d0bc6bbe8df348616cfa4dbe02"
},
"opened": {
"area_len": 32768,
"author_key": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"files": [
{
"path": "fotos/año 2026.txt",
"sha256": "008bcdd384dfa24ec241d63408bd854ac9bdedd42e26b48fdfda1a6c43ecc386",
"size": 29
},
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a6006d646174656b6579732d6865616401010258204ac572f0da468da3d8d79c10898d04e7cad4b3e241dac31f6b9d0aab810056d203754669726d61646f20636f6e206d6920636c6176652e046a416e61204cc3b370657a0582a50073666f746f732f61c3b16f20323032362e74787401181d020003181d045820008bcdd384dfa24ec241d63408bd854ac9bdedd42e26b48fdfda1a6c43ecc386a500686e6f74612e747874010602181d0318230458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 33024,
"lines": [
"Firmado con la clave dkauthor1pdrcy0n3p9watxl83tp8r3tkauuflpakg4s6kp70nf8te5pdypqszvracp. No prueba quién la tiene."
],
"result": "ok",
"verdicts": [
"F4",
"S0"
]
},
"opened_saved": {
"area_len": 32768,
"author_key": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"files": [
{
"path": "fotos/año 2026.txt",
"sha256": "008bcdd384dfa24ec241d63408bd854ac9bdedd42e26b48fdfda1a6c43ecc386",
"size": 29
},
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a6006d646174656b6579732d6865616401010258204ac572f0da468da3d8d79c10898d04e7cad4b3e241dac31f6b9d0aab810056d203754669726d61646f20636f6e206d6920636c6176652e046a416e61204cc3b370657a0582a50073666f746f732f61c3b16f20323032362e74787401181d020003181d045820008bcdd384dfa24ec241d63408bd854ac9bdedd42e26b48fdfda1a6c43ecc386a500686e6f74612e747874010602181d0318230458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 33024,
"lines": [
"Firmado con la clave que guardaste como mi clave de 2026."
],
"result": "ok",
"verdicts": [
"F3",
"S0"
]
},
"recipe": {
"name": "alg 1",
"seed": "signing alg 1",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"comment": "Firmado con mi clave.",
"author": "Ana López",
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0"
}
},
"written": {
"body_length": 33024,
"capsule_id": "5b0482aff309bd4164bd0e1cecd77d0c",
"length": 35611,
"sha256": "bb1c5667ab389ae10009c0f28158f4a471fe96f379cf17fbe5f0fb9b4c5a6f71"
}
},
{
"draws": [
{
"hex": "ee5c65c322cb0d938145cfd46500a378c5d5206a9f9fef75e3760a8fe80eb30d",
"n": 32
},
{
"hex": "df1565489bbd8d7334907295ae616b25",
"n": 16
},
{
"hex": "897c8b7d4987a04a32f0bd315d755284ea162e8b4ae71c88b5674883c72c408d",
"n": 32
},
{
"hex": "493ac0213e02074ce1d9eb163a74cc33",
"n": 16
},
{
"hex": "6fb54794c805c6fd0c1b3f7e676a2c67",
"n": 16
},
{
"hex": "e9a05451d5b45bfb056fe4c7233e9e49",
"n": 16
},
{
"hex": "188b8bef81c4e944fa1c6051221f2452",
"n": 16
},
{
"hex": "b447a2a3b6dd52217f26539c7a59e38d",
"n": 16
},
{
"hex": "39a2dddd97a59781895345e2e40c87e6",
"n": 16
},
{
"hex": "f43c3e2bd217eb5186ba8e0877f1b6c7",
"n": 16
},
{
"hex": "3fc245297d6a2c5c3a4d0bd8a31ff665",
"n": 16
},
{
"hex": "7d5237526b70a44a77e467fbe77f651f",
"n": 16
},
{
"hex": "7a3feb342b641c1949dc1205d7f584aff904ad9e6d194abbf6fc3cda444f3333",
"n": 32
},
{
"hex": "995c65068983522bc306567c6fb29ba3",
"n": 16
}
],
"hooks": {
"author_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a643636303261616661346238393338336363396638333237323462373633653038303539333766333462633865326664383865623630393539306230343536370a",
"author_public": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"author_signature": "0a7b73331c5f3473ebffc0861dafcb32d12fc49247b8f4aaeded563a50938dca88fadfad46a1077aee985f618ef946809398b7630ccd1f8b3a145ec07453aa0b",
"seal_subject": "c34bdfe9be5f616099af03551691d8df20ac7a44d88c0d8a003cf114a706d8d2",
"seal_token": "3082033406092a864886f70d010702a082032530820321020101310d300b06096086480165030402013060060b2a864886f70d0109100104a051044f304d02010106032a0304302f300b060960864801650304020104207c2c154b412774b5d88742e29d180057635f08c5366c20939b31e316fa6d98bc02012a180f32303233303832333135303932375aa08201833082017f30820126a00302010202082622f848525703b5300a06082a8648ce3d040302303031163014060355040a130d446174654b6579732074657374311630140603550403130d54534120646520707275656261301e170d3230303130313030303030305a170d3430303130313030303030305a303031163014060355040a130d446174654b6579732074657374311630140603550403130d545341206465207072756562613059301306072a8648ce3d020106082a8648ce3d030107034200046ef0bc1ef2b58337ad784b0097970ae832c2141ea6d989368530d88d42d817e384f3aafa089f4c7c2e2dabf8d521b0b85e91951d93428c10b1935a53693771cda32a3028300e0603551d0f0101ff04040302078030160603551d0e040f040d54534120646520707275656261300a06082a8648ce3d040302034700304402206d7fe9402077e246b91120b105f4bec4abc344b8fe6e0d9abf310c363048c471022006d6f93c781a22b6fd078116b5d6611b0c8f0663e0d50f1a8c437bf23f8067e4318201223082011e020101303c303031163014060355040a130d446174654b6579732074657374311630140603550403130d5453412064652070727565626102082622f848525703b5300b0609608648016503040201a07a301a06092a864886f70d010903310d060b2a864886f70d0109100104302b060b2a864886f70d010910020c311c301a301830160414c7f2c3d3abc329906f17b8e81ace26f285d9def7302f06092a864886f70d010904312204200ff8a4691a918ef8c3315d74bda6accc0da5241411fa60c61b7676fd8866a5fe300a06082a8648ce3d0403020446304402205049f977ce58ec884c2076bea7db11a1738b9cdb0697b7ba85f626d59869d6d702203d76679519fb3cd4c1e5d890fe67d5f52d8370a25c541f60ad94cc2ef253d1e9"
},
"opened": {
"area_len": 32768,
"author_key": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"files": [
{
"path": "fotos/año 2026.txt",
"sha256": "008bcdd384dfa24ec241d63408bd854ac9bdedd42e26b48fdfda1a6c43ecc386",
"size": 29
},
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a4006d646174656b6579732d686561640101025820ee5c65c322cb0d938145cfd46500a378c5d5206a9f9fef75e3760a8fe80eb30d0582a50073666f746f732f61c3b16f20323032362e74787401181d020003181d045820008bcdd384dfa24ec241d63408bd854ac9bdedd42e26b48fdfda1a6c43ecc386a500686e6f74612e747874010602181d0318230458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 32989,
"lines": [
"Firmado con la clave dkauthor1pdrcy0n3p9watxl83tp8r3tkauuflpakg4s6kp70nf8te5pdypqszvracp. No prueba quién la tiene.",
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>
2 days ago
"No acredita que se sellara antes de la fecha de apertura: el sello no dice su precisión."
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
],
"result": "ok",
"verdicts": [
"F4",
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>
2 days ago
"S5"
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
]
},
"opened_saved": {
"area_len": 32768,
"author_key": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"files": [
{
"path": "fotos/año 2026.txt",
"sha256": "008bcdd384dfa24ec241d63408bd854ac9bdedd42e26b48fdfda1a6c43ecc386",
"size": 29
},
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a4006d646174656b6579732d686561640101025820ee5c65c322cb0d938145cfd46500a378c5d5206a9f9fef75e3760a8fe80eb30d0582a50073666f746f732f61c3b16f20323032362e74787401181d020003181d045820008bcdd384dfa24ec241d63408bd854ac9bdedd42e26b48fdfda1a6c43ecc386a500686e6f74612e747874010602181d0318230458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 32989,
"lines": [
"Firmado con la clave que guardaste como mi clave de 2026.",
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>
2 days ago
"No acredita que se sellara antes de la fecha de apertura: el sello no dice su precisión."
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
],
"result": "ok",
"verdicts": [
"F3",
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>
2 days ago
"S5"
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
]
},
"recipe": {
"name": "alg 1 and a seal",
"seed": "signing alg 1 and a seal",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0"
},
"sealer": {}
},
"written": {
"body_length": 32989,
"capsule_id": "df1565489bbd8d7334907295ae616b25",
"length": 35611,
"sha256": "55e4e4abab2c387332dcb8cbfd0d48b15f104420babfa139d9903721b51962fe"
}
},
{
"draws": [
{
"hex": "c944701abb1663d609faca5377e5409ef4e9db9837745f3a2549cf00fb33bb92",
"n": 32
},
{
"hex": "4608ced88c11bc22abfe9ad3ee5c9553",
"n": 16
},
{
"hex": "f2ac920e5862ec3bb72f8aadb307ff872678b31be611a1232494da33d3692e19",
"n": 32
},
{
"hex": "c194fb503b48019baecc97620d83c492",
"n": 16
},
{
"hex": "92568f55c5d76fcc4f70a936274e1ceb",
"n": 16
},
{
"hex": "aaf14a7189fb4f0ab96fa5063da6f66f",
"n": 16
},
{
"hex": "1be3e11078a650554928aa27a6bae19a",
"n": 16
},
{
"hex": "67b96c2e96bfc928e1c942b90e52090a",
"n": 16
},
{
"hex": "c9bd38011c6657e3933058a0ac002b3a",
"n": 16
},
{
"hex": "5f422925c37aea87e35736d00afbc013",
"n": 16
},
{
"hex": "a4aa7116db465af5dbdc0d9392113232",
"n": 16
},
{
"hex": "cb2f07ccfbc32b7a07f96094e75705c9",
"n": 16
},
{
"hex": "b5ef2a889337ab916acdbb287de7760e68a8e47c46f2b9254a54d853d389d7e1",
"n": 32
},
{
"hex": "4a82a74e5b01867e0f2caed4b83d2d20",
"n": 16
}
],
"hooks": {
"seal_subject": "b4e6f99420f6e54ebc8ee31be678485cc1b88246a9b2c4e2f6f2d5c0eff8f56f",
"seal_token": "3082033506092a864886f70d010702a082032630820322020101310d300b06096086480165030402013060060b2a864886f70d0109100104a051044f304d02010106032a0304302f300b060960864801650304020104206acd45a36f2784918c7fba69e009a380acd07dd2450576b91cc8c8996c3ad56a02012a180f32303233303832333135303932375aa08201833082017f30820126a00302010202082622f848525703b5300a06082a8648ce3d040302303031163014060355040a130d446174654b6579732074657374311630140603550403130d54534120646520707275656261301e170d3230303130313030303030305a170d3430303130313030303030305a303031163014060355040a130d446174654b6579732074657374311630140603550403130d545341206465207072756562613059301306072a8648ce3d020106082a8648ce3d030107034200046ef0bc1ef2b58337ad784b0097970ae832c2141ea6d989368530d88d42d817e384f3aafa089f4c7c2e2dabf8d521b0b85e91951d93428c10b1935a53693771cda32a3028300e0603551d0f0101ff04040302078030160603551d0e040f040d54534120646520707275656261300a06082a8648ce3d040302034700304402206d7fe9402077e246b91120b105f4bec4abc344b8fe6e0d9abf310c363048c471022006d6f93c781a22b6fd078116b5d6611b0c8f0663e0d50f1a8c437bf23f8067e4318201233082011f020101303c303031163014060355040a130d446174654b6579732074657374311630140603550403130d5453412064652070727565626102082622f848525703b5300b0609608648016503040201a07a301a06092a864886f70d010903310d060b2a864886f70d0109100104302b060b2a864886f70d010910020c311c301a301830160414c7f2c3d3abc329906f17b8e81ace26f285d9def7302f06092a864886f70d010904312204203ee8a6aa162fc625ec82c769601a303b1b1ad7b5e934d87d4fdaecac9a76029e300a06082a8648ce3d04030204473045022073de96b65325f82e9beae40cdc13a1f7a186cb03af4c8fb63ef67accc7cc4ec9022100d57ad3fa37e7fbe631374639c0f7ef270fe328df1e5e8696497e6fde6ad2612e"
},
"opened": {
"area_len": 32768,
"files": [
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a4006d646174656b6579732d686561640101025820c944701abb1663d609faca5377e5409ef4e9db9837745f3a2549cf00fb33bb920581a500686e6f74612e7478740106020003060458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 32893,
"lines": [
"Sin firma de autor.",
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>
2 days ago
"No acredita que se sellara antes de la fecha de apertura: el sello no dice su precisión."
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
],
"result": "ok",
"verdicts": [
"F0",
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>
2 days ago
"S5"
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
]
},
"recipe": {
"name": "a seal alone",
"seed": "signing a seal alone",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
}
],
"sealer": {}
},
"written": {
"body_length": 32893,
"capsule_id": "4608ced88c11bc22abfe9ad3ee5c9553",
"length": 35611,
"sha256": "df8daebf52452e654f0c08f1c5313ed97688824268d26dfd9aea0c67efd846c4"
}
},
{
"draws": [
{
"hex": "7403a02db82138f4debe81c7deb69d1a9ec2a6694a74a96c940e99c794cb0fc0",
"n": 32
},
{
"hex": "80fb6269593ef4651325368e5ff6a312",
"n": 16
},
{
"hex": "83c0fe102c16d2e17010c061a8080d5756b936a9128e9984859959921390f2e9",
"n": 32
},
{
"hex": "f1a828a20dbd61f4893828441665c263",
"n": 16
},
{
"hex": "219a7a9c23844f695cc00c115f8c3070",
"n": 16
},
{
"hex": "8518b38a434e1f2044b5dcef85f82d14",
"n": 16
},
{
"hex": "e11442e7ed42c122ccb306245126e4e9",
"n": 16
},
{
"hex": "31e0d8befbe9d5ebeee0e7e8b1acc450",
"n": 16
},
{
"hex": "6d7d89742c3a26de0ada2d5f724c18d9",
"n": 16
},
{
"hex": "345efd9d133e0de9f298a8a661d1b26f",
"n": 16
},
{
"hex": "0854927592d8590e37eb762f9e1dce42",
"n": 16
},
{
"hex": "14413bb48ea67bd28ae257ebd6ee857f",
"n": 16
},
{
"hex": "7bcc02dd199aa3140cd8d264917c48a9f1acc36ac48bdf75f482bf192ea9d156",
"n": 32
},
{
"hex": "b528840cff1a8510e036e7059f455eff",
"n": 16
}
],
"hooks": {
"cms_der": "30820e8206092a864886f70d010702a0820e7330820e6f020101310d300b0609608648016503040201300b06092a864886f70d010701a0820485308201773082011da00302010202080a2d17d0344c4223300a06082a8648ce3d040302302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a301e170d3230303130313030303030305a170d3430303130313030303030305a302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a3059301306072a8648ce3d020106082a8648ce3d030107034200045d675bbeb635e0726c75605f78e67a0a252c3c79f27b2f8ed9933fdae98893ecbe0a8970f8efd6adfb897f98cf2b493b3f8dbb4d50ba5c5e2d5fa65eda82bc7ca3273025300e0603551d0f0101ff04040302078030130603551d0e040c040a416e61204cc3b370657a300a06082a8648ce3d040302034800304502202b6d1a4052c04638cd70f7cbf1cae6272ceba5b44eb936adc3514aac5e0210db022100bfc3baf1635dec527acd3469c46df24ce66b3e5e10e4efd5b66f31250bd79e9130820306308201eea00302010202080ad004b9634ce59e300d06092a864886f70d01010b0500302e31163014060355040a130d446174654b65797320746573743114301206035504030c0b4c7569732047c3b36d657a301e170d3230303130313030303030305a170d3430303130313030303030305a302e31163014060355040a130d446174654b65797320746573743114301206035504030c0b4c7569732047c3b36d657a30820122300d06092a864886f70d01010105000382010f003082010a0282010100cd098bef678864c7241a3139b9615d0dc67c7116757b230dd46496bb2ae79a6b8ba575fb0da9e7176c8ee87d58ce45bfb81c81a7baeec70868fd7eeaea8b3014f97d32bbdd17866d456b55b64d7852406e7e36c17375865e075bedda9ff6d9154376eac17864ae346cebc17d152a5955a97cf460520d92384c2467e2a56af74e1de182b99c12f6abfb8662654aa62807da1488d203a18b9265552f4b2af4d3fea499d03dca4220a2e9ba3578f60b249e00b1720314f2bd3c1e3be6649cc77f235bf2dab2081e71a0f7352ad14113947ca52722f7a489f40b5ef440ff9c60566638b9b190b7c5d242bf433cb75b2cd7eb1e2ebf0bc1bf59d6c684639aa6c626810203010001a3283026300e0603551d0f0101ff04040302078030140603551d0e040d040b4c7569732047c3b36d657a300d06092a864886f70d01010b05000382010100aa2ba12dc3b1f785f3a90d2665805216607f2218d8cdeed5606c4da2cf3546ae5609b28014bab3eb89a2c7beea84b4f302c731cd8f5c1550a9e6f564c3ac9a26d4318deca828b664c08221a9ac84a8054766fe149bdd1b6315739d356f5a9589040116cff08dbcaf7670f7bd0d11fb573c003261dbbfc33c0ea562ca1d19ceeb498270c2fb1669c37a5c1c0be2046f571873078ff75f08a37474adaac31abef97179d356493a0ad5b9709046a69dfc099c9d55011c0b6b177ef2daf8426544441bb10bfbccab4d46ac949a5d0c76ec95a71121277d888ec6e9f1c841f2cfec449653b92168428c3461bb3f96266c383b7fa3922639a6f62eb9eaf7902defeece318209c33082047f0201013039302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a02080a2d17d0344c4223300b0609608648016503040201a08184301806092a864886f70d010903310b06092a864886f70d010701302f06092a864886f70d01090431220420692fde7ef9e77c5f3d2ab5b5420407a75cd8a4c36ad90949eb447a92e0ba768f3037060b2a864886f70d010910022f3128302630243022042018c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57300a06082a8648ce3d04030204483046022100b1c3377a29be27bb2961d091d28e46a8b90e8a3a8a0cb3c1fdde72fff4f052d7022100c3f6199f1bf3368db36b134a7a66cc1aabda2b5d080d10306e4414c392803caca18203533082034f060b2a864886f70d010910020e3182033e3082033a06092a864886f70d010702a082032b30820327020101310d300b06096086480165030402013065060b2a864886f70d0109100104a0560454305202010106032a0304302f300b060960864801650304020104202abfb8669c8486195292db3a2819840a78a4dbf3d8e1e3869732f932fb7a916302012a180f32303233303832333135303932375a3003020101a08201833082017f30820126a00302010202082622f848525703b5300a06082a8648ce3d040302303031163014060355040a130d446174654b6579732074657374311630140603550403130d54534120646520707275656261301e170d3230303130313030303030305a170d3430303130313030303030305a303031163014060355040a130d446174654b6579732074657374311630140603550403130d545341206465207072756562613059301306072a8648ce3d020106082a8648ce3d030107034200046ef0bc1ef2b58337ad784b0097970ae832c2141ea6d989368530d88d42d817e384f3aafa089f4c7c2e2dabf8d521b0b85e91951d93428c10b1935a53693771cda32a3028300e0603551d0f0101ff04040302078030160603551d0e040f040d54534120646520707275656261300a06082a8648ce3d040302034700304402206d7fe9402077e246b91120b105f4bec4abc344b8fe6e0d9abf310
"cms_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a386438306638336166306538306630636462313433303538653239366239326366393635356264366635623135373864363134326233663133386531346338640a",
"cms_signers": [
"18c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57",
"dd8dad5bfb2e4f8bacaa054ebfba5542d7b95fe4b82eba383b8cc1e7af03d18a"
]
},
"opened": {
"area_len": 32768,
"files": [
{
"path": "fotos/año 2026.txt",
"sha256": "008bcdd384dfa24ec241d63408bd854ac9bdedd42e26b48fdfda1a6c43ecc386",
"size": 29
},
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a5006d646174656b6579732d6865616401010258207403a02db82138f4debe81c7deb69d1a9ec2a6694a74a96c940e99c794cb0fc003744669726d61646f20706f72206c6f7320646f732e0582a50073666f746f732f61c3b16f20323032362e74787401181d020003181d045820008bcdd384dfa24ec241d63408bd854ac9bdedd42e26b48fdfda1a6c43ecc386a500686e6f74612e747874010602181d0318230458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 33011,
"lines": [
"Firmado con un certificado a nombre de «Ana López», «Luis Gómez». DateKeys no comprueba quién lo emitió: para eso, exporta la firma a un validador oficial.",
" «Ana López» (emisor según su certificado: «Ana López»), sellado por «TSA de prueba» el 2023-08-23T15:09:27Z, antes de la fecha de apertura.",
" «Luis Gómez» (emisor según su certificado: «Luis Gómez»), sellado por «TSA de prueba» el 2023-08-23T15:09:27Z, antes de la fecha de apertura.",
" DateKeys no comprueba quién emitió los sellos."
],
"result": "ok",
"verdicts": [
"F6",
"S0"
]
},
"recipe": {
"name": "alg 2, two signers, sealed",
"seed": "signing alg 2, two signers, sealed",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"comment": "Firmado por los dos.",
"cms": {
"signers": [
"Ana López",
"Luis Gómez"
]
}
},
"written": {
"body_length": 33011,
"capsule_id": "80fb6269593ef4651325368e5ff6a312",
"length": 35611,
"sha256": "1fd032d068a4716051788e39cbba1555471ff088b842de3cba5e09ff594faeac"
}
},
{
"draws": [
{
"hex": "f6ba3bc0e85d8057d5ad51ae7105a7145ca336b4660c436d5f76518fff9d6288",
"n": 32
},
{
"hex": "8a48277f7cedc6f3ff1535444d51613c",
"n": 16
},
{
"hex": "a27ad61245257a5632e1bb3655df77cb792d283ef12b3a9f2afb8794a0929058",
"n": 32
},
{
"hex": "800c3ac1ee1a3e149c3973c2c192c47c",
"n": 16
},
{
"hex": "b382e39b3b26bf7ade1bf39b11a753f6",
"n": 16
},
{
"hex": "0c01000cfd0ff073e43b691f641b4318",
"n": 16
},
{
"hex": "93afd143b9af30d261a861207febdc1b",
"n": 16
},
{
"hex": "f662c8746ae60f35ae3eeb7bdcfa98f7",
"n": 16
},
{
"hex": "c57369d8ccf94945c4018f1d79718fc3",
"n": 16
},
{
"hex": "1b3f5ff6a8c102ea1f1b86cb61cde14e",
"n": 16
},
{
"hex": "9dc4db8a64e0dfd1c1dea3313bd0b047",
"n": 16
},
{
"hex": "b758f69e342eff99ebab8eb43fddbdcf",
"n": 16
},
{
"hex": "4c02691c36764d38771daf3d38175ade4f2029ca73bcc5cf4cf5d856de23b65f",
"n": 32
},
{
"hex": "488ecfc51115aeb93d6b4a20f58ed0b6",
"n": 16
}
],
"hooks": {
"cms_der": "3082a28806092a864886f70d010702a082a2793082a275020101310d300b0609608648016503040201300b06092a864886f70d010701a082017b308201773082011da00302010202080a2d17d0344c4223300a06082a8648ce3d040302302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a301e170d3230303130313030303030305a170d3430303130313030303030305a302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a3059301306072a8648ce3d020106082a8648ce3d030107034200045d675bbeb635e0726c75605f78e67a0a252c3c79f27b2f8ed9933fdae98893ecbe0a8970f8efd6adfb897f98cf2b493b3f8dbb4d50ba5c5e2d5fa65eda82bc7ca3273025300e0603551d0f0101ff04040302078030130603551d0e040c040a416e61204cc3b370657a300a06082a8648ce3d040302034800304502202b6d1a4052c04638cd70f7cbf1cae6272ceba5b44eb936adc3514aac5e0210db022100bfc3baf1635dec527acd3469c46df24ce66b3e5e10e4efd5b66f31250bd79e913182a0d33082a0cf0201013039302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a02080a2d17d0344c4223300b0609608648016503040201a08184301806092a864886f70d010903310b06092a864886f70d010701302f06092a864886f70d0109043122042043afda0484ef594a1f025585eaeac25659ebc0e3c96362b1e5f08d91bbc25c3e3037060b2a864886f70d010910022f3128302630243022042018c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57300a06082a8648ce3d04030204473045022076794229d060414914b238a69325f3a702199c90af4374f74d608fe635ff3db2022100adca0d8d3fb5694a688d59729bad30f320e99ceeee70060815f867f68f1bc2dea1829fa43082034e060b2a864886f70d010910020e3182033d3082033906092a864886f70d010702a082032a30820326020101310d300b06096086480165030402013065060b2a864886f70d0109100104a0560454305202010106032a0304302f300b0609608648016503040201042060b5c52b1dc3dce6da85626a4bbf5c487d5b9cb74360e49f09cfc086649e934c02012a180f32303233303832333135303932375a3003020101a08201833082017f30820126a00302010202082622f848525703b5300a06082a8648ce3d040302303031163014060355040a130d446174654b6579732074657374311630140603550403130d54534120646520707275656261301e170d3230303130313030303030305a170d3430303130313030303030305a303031163014060355040a130d446174654b6579732074657374311630140603550403130d545341206465207072756562613059301306072a8648ce3d020106082a8648ce3d030107034200046ef0bc1ef2b58337ad784b0097970ae832c2141ea6d989368530d88d42d817e384f3aafa089f4c7c2e2dabf8d521b0b85e91951d93428c10b1935a53693771cda32a3028300e0603551d0f0101ff04040302078030160603551d0e040f040d54534120646520707275656261300a06082a8648ce3d040302034700304402206d7fe9402077e246b91120b105f4bec4abc344b8fe6e0d9abf310c363048c471022006d6f93c781a22b6fd078116b5d6611b0c8f0663e0d50f1a8c437bf23f8067e4318201223082011e020101303c303031163014060355040a130d446174654b6579732074657374311630140603550403130d5453412064652070727565626102082622f848525703b5300b0609608648016503040201a07a301a06092a864886f70d010903310d060b2a864886f70d0109100104302b060b2a864886f70d010910020c311c301a301830160414c7f2c3d3abc329906f17b8e81ace26f285d9def7302f06092a864886f70d010904312204200510bab62ae329d9c15fbfabbc998330d8812026ea3b17cd4c581e643aadca50300a06082a8648ce3d04030204463044022051d28f072c5184ab93c97d8b31aaa22a2594589a0ca7dbc2fe179bb5e3f33947022005bcae3acdef89159bb4d3cd1f3726e74af60818fb8b9f7121dbc90976feb51430829c4e06042a03040531829c4404829c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
"cms_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a376433643535626333323433373136336435636662326566656238393862626537323937626134633631616235313534363034396263653030383132616438660a",
"cms_signers": [
"18c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57"
]
},
"opened": {
"area_len": 65536,
"files": [
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a4006d646174656b6579732d686561640101025820f6ba3bc0e85d8057d5ad51ae7105a7145ca336b4660c436d5f76518fff9d62880581a500686e6f74612e7478740106020003060458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 65661,
"lines": [
"Firmado con un certificado a nombre de «Ana López». DateKeys no comprueba quién lo emitió: para eso, exporta la firma a un validador oficial.",
" «Ana López» (emisor según su certificado: «Ana López»), sellado por «TSA de prueba» el 2023-08-23T15:09:27Z, antes de la fecha de apertura.",
" DateKeys no comprueba quién emitió los sellos."
],
"result": "ok",
"verdicts": [
"F6",
"S0"
]
},
"recipe": {
"name": "alg 2, a large area",
"seed": "signing alg 2, a large area",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
}
],
"cms": {
"signers": [
"Ana López"
],
"junk": 40000
},
"large_area": true
},
"written": {
"body_length": 65661,
"capsule_id": "8a48277f7cedc6f3ff1535444d51613c",
"length": 68395,
"sha256": "3f112abe79c7783f68b62ea4ff359234e9708be4819662fc592eab5a9d40918a"
}
},
{
"draws": [
{
"hex": "2fce274ff8f07b8540e4cc39d7919904c6a313f7df54a01986d35b94c55a6b19",
"n": 32
},
{
"hex": "f8c36fdeb6bdbfec4aab322fe38fe929",
"n": 16
},
{
"hex": "e5669dcb07a0da5d0f95703a7e61e37bb13011aa4f66be298ac99f31f73ee529",
"n": 32
},
{
"hex": "a9ec139bdf528201d83cbf83e0625ee9",
"n": 16
},
{
"hex": "1be9bbef452eb178b860fde4fbc95ae8",
"n": 16
},
{
"hex": "c4f52c6034260d5ea32b1703f0e0a645",
"n": 16
},
{
"hex": "0d2c523a78527a1724adea4d853932c8",
"n": 16
},
{
"hex": "ac286ad391b14a4a0589d15d63759dd9",
"n": 16
},
{
"hex": "ca94af55854450db39264c840dc063fb",
"n": 16
},
{
"hex": "49bf82177cacaf740a991e692ca554b3",
"n": 16
},
{
"hex": "e0ca4162b35a888c73dddf20db245ece",
"n": 16
},
{
"hex": "72aab9487bb6a2034989a7464d228105",
"n": 16
},
{
"hex": "647a3e97b90f4d4d7b1be2f81bfd9fa5d35dbcda50365e28e97a29aff86741de",
"n": 32
},
{
"hex": "5b7689e4f51982fd83cf98b5ad4d24c0",
"n": 16
}
],
"hooks": {
"author_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a653030666338363530336435356662666332326136336535363566323362333731626166343639613761306663393064336332313166326239373838313864390a",
"author_public": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"author_signature": "190635b040ed348900f82868ce74f7d030143b7f312673b91a386d611f34bd039e5beeb09e2424b15497fdc273a10a76afe5b20a9f634931253797053a12d80a"
},
"opened": {
"area_len": 32768,
"author_key": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"files": [],
"head": "a4006d646174656b6579732d6865616401010258202fce274ff8f07b8540e4cc39d7919904c6a313f7df54a01986d35b94c55a6b190373536f6c6f20756e20636f6d656e746172696f2e",
"length": 32854,
"lines": [
"Firmado con la clave dkauthor1pdrcy0n3p9watxl83tp8r3tkauuflpakg4s6kp70nf8te5pdypqszvracp. No prueba quién la tiene."
],
"result": "ok",
"verdicts": [
"F4",
"S0"
]
},
"opened_saved": {
"area_len": 32768,
"author_key": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"files": [],
"head": "a4006d646174656b6579732d6865616401010258202fce274ff8f07b8540e4cc39d7919904c6a313f7df54a01986d35b94c55a6b190373536f6c6f20756e20636f6d656e746172696f2e",
"length": 32854,
"lines": [
"Firmado con la clave que guardaste como mi clave de 2026."
],
"result": "ok",
"verdicts": [
"F3",
"S0"
]
},
"recipe": {
"name": "alg 1, a large area that does not widen",
"seed": "signing alg 1, a large area that does not widen",
"comment": "Solo un comentario.",
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0"
},
"large_area": true
},
"written": {
"body_length": 32854,
"capsule_id": "f8c36fdeb6bdbfec4aab322fe38fe929",
"length": 35611,
"sha256": "cd62143f36098d4cf8e2819ef8fa60a59f3b8f16580e97b562dc495b6a84cd0a"
}
},
{
"draws": [
{
"hex": "d4b4d75eee410ce8183858c4b10a19ee68492d23651140195918efeb3ebf4d9a",
"n": 32
},
{
"hex": "d68177d224997289d94a896b87f1e637",
"n": 16
},
{
"hex": "15d5887d7420b827f7bbb371c210202117417c6be6a2d07bc19e090bc0a4b1b7",
"n": 32
},
{
"hex": "74eabb04b8caa8f6dd91702fcbf78842",
"n": 16
},
{
"hex": "a7e4b93ccb1d331de916af32fe31b790",
"n": 16
},
{
"hex": "8a96bed982312d2c888291cce46d9d93",
"n": 16
},
{
"hex": "aa2a71f92a781833479aef3815e794c4",
"n": 16
},
{
"hex": "f2055c210a22d61666e43510d95806d3",
"n": 16
},
{
"hex": "0dcd36e85aa74ba9fe92214426c06df4",
"n": 16
},
{
"hex": "175fbec1e3c7314c3aa04e6bbd42cf1e",
"n": 16
},
{
"hex": "a7b1d4e745e73b255b62483666126c30",
"n": 16
},
{
"hex": "a305aee5e0578d8b6096c2887561bf40",
"n": 16
},
{
"hex": "a0ebfff35cce9307c155ba8411daa539e4f21a7e2a193de5c9c604af08633f59",
"n": 32
},
{
"hex": "9d42c81f21c08ee646d0347cc38a4684",
"n": 16
}
],
"hooks": {
"author_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a313632623666653637623564316164366334313535333433396435306635633036646333616436656336353830393466313062643931396461376366373831390a",
"author_public": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"author_signature": "b4d0a60837fef93d2112bea03dc65f042541cf1c131c1461cddc1da55a68fbaa00d191865372fbe8ee5fa6dae9e2190bf4780a98d6a8c0d5c281e087233d8b0f"
},
"opened": {
"area_len": 512,
"author_key": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"files": [
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a4006d646174656b6579732d686561640101025820d4b4d75eee410ce8183858c4b10a19ee68492d23651140195918efeb3ebf4d9a0581a500686e6f74612e7478740106020003060458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 637,
"lines": [
"Firmado con la clave dkauthor1pdrcy0n3p9watxl83tp8r3tkauuflpakg4s6kp70nf8te5pdypqszvracp. No prueba quién la tiene."
],
"result": "ok",
"verdicts": [
"F4",
"S0"
]
},
"opened_saved": {
"area_len": 512,
"author_key": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"files": [
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a4006d646174656b6579732d686561640101025820d4b4d75eee410ce8183858c4b10a19ee68492d23651140195918efeb3ebf4d9a0581a500686e6f74612e7478740106020003060458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 637,
"lines": [
"Firmado con la clave que guardaste como mi clave de 2026."
],
"result": "ok",
"verdicts": [
"F3",
"S0"
]
},
"recipe": {
"name": "alg 1, an area of 512",
"seed": "signing alg 1, an area of 512",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
}
],
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0"
},
"test_area_len": 512
},
"written": {
"body_length": 637,
"capsule_id": "d68177d224997289d94a896b87f1e637",
"length": 1563,
"sha256": "8d48857ddbdd7baec825ec55f2d0b6b100d9bed1fe86b53dde38eb4a8913b193"
}
},
{
"draws": [
{
"hex": "d1704d1c04c10f26587a0d5ea4916c1491a1b10fe70b1bf87058bebc4f1b08e1",
"n": 32
},
{
"hex": "cd3dea98a8d3a37498417d62e423a09e",
"n": 16
},
{
"hex": "9675a99eb7f200a69971f40eba6bd9f6173ae5b36d82ef7c1b3879047358406d",
"n": 32
},
{
"hex": "480bddeb176feb68619c629c2acf9ec2",
"n": 16
},
{
"hex": "f0fe87e867033f46d3d2846cd7396eb1",
"n": 16
},
{
"hex": "a55fb46df43fdf14f80dcdb71afc427a",
"n": 16
},
{
"hex": "01a1beb7e5f63b097b1ae5012a77b860",
"n": 16
},
{
"hex": "48ab35b778b4bcfac0b208b9726885a9",
"n": 16
},
{
"hex": "9dac3b1faeeee47966e42f1be9af6c00",
"n": 16
},
{
"hex": "56a713cb1f4f62bdac733685a5b29387",
"n": 16
},
{
"hex": "a9464ca921fc0350e6cfd0ea01430784",
"n": 16
},
{
"hex": "4214cb40b2bbd8691d8978cd86f4baf2",
"n": 16
},
{
"hex": "127e1c0f2194fb02fa679c9a03c816213352c3354d7e8d4386e641ca4eb99c70",
"n": 32
},
{
"hex": "e4d7348f6ed54de6bc967aa25396fa78",
"n": 16
}
],
"hooks": {
"author_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a333637323437356339646161646364306334363132643132383833336537306131366334333565666430636562363635383432376137613361613434336662360a",
"author_public": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"author_signature": "0b636a90f614a0d3620b345fd6408b6dccf184bb1c67f48ad231ec8864c3fa21b53044b08b064393d8c640e5c3fda2c4f944e45e5803bab28f08e1b06dd9e603",
"seal_subject": "f15aad139108a62780fa3ac6eda0dde3f87b389f056f847ecf82f6f3f586f385",
"seal_token": "3082033406092a864886f70d010702a082032530820321020101310d300b06096086480165030402013060060b2a864886f70d0109100104a051044f304d02010106032a0304302f300b06096086480165030402010420dcdf33c93710793ab10cbdf54fb8c7c4edeeb55407324260ba738d5b3f48854602012a180f32303233303832333136353932345aa08201833082017f30820126a00302010202082622f848525703b5300a06082a8648ce3d040302303031163014060355040a130d446174654b6579732074657374311630140603550403130d54534120646520707275656261301e170d3230303130313030303030305a170d3430303130313030303030305a303031163014060355040a130d446174654b6579732074657374311630140603550403130d545341206465207072756562613059301306072a8648ce3d020106082a8648ce3d030107034200046ef0bc1ef2b58337ad784b0097970ae832c2141ea6d989368530d88d42d817e384f3aafa089f4c7c2e2dabf8d521b0b85e91951d93428c10b1935a53693771cda32a3028300e0603551d0f0101ff04040302078030160603551d0e040f040d54534120646520707275656261300a06082a8648ce3d040302034700304402206d7fe9402077e246b91120b105f4bec4abc344b8fe6e0d9abf310c363048c471022006d6f93c781a22b6fd078116b5d6611b0c8f0663e0d50f1a8c437bf23f8067e4318201223082011e020101303c303031163014060355040a130d446174654b6579732074657374311630140603550403130d5453412064652070727565626102082622f848525703b5300b0609608648016503040201a07a301a06092a864886f70d010903310d060b2a864886f70d0109100104302b060b2a864886f70d010910020c311c301a301830160414c7f2c3d3abc329906f17b8e81ace26f285d9def7302f06092a864886f70d010904312204207754517ee1b3dd3ada23c0e2c15827b9e3170a877ac3b19671efe3bd5b314d79300a06082a8648ce3d04030204463044022027dca672d067c4493250a18c6b769932cbe718505bf3fec64030f4120996b7b7022063493c906d2ea8ea5bfbff5469e98236f5e7d13722694a7617bc2a70cb0f4241"
},
"opened": {
"area_len": 32768,
"author_key": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"files": [
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a4006d646174656b6579732d686561640101025820d1704d1c04c10f26587a0d5ea4916c1491a1b10fe70b1bf87058bebc4f1b08e10581a500686e6f74612e7478740106020003060458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 32893,
"lines": [
"Firmado con la clave dkauthor1pdrcy0n3p9watxl83tp8r3tkauuflpakg4s6kp70nf8te5pdypqszvracp. No prueba quién la tiene.",
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>
2 days ago
"No acredita que se sellara antes de la fecha de apertura: se selló después de esa fecha o demasiado cerca de ella."
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
],
"result": "ok",
"verdicts": [
"F4",
"S5"
]
},
"opened_saved": {
"area_len": 32768,
"author_key": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"files": [
{
"path": "nota.txt",
"sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"size": 6
}
],
"head": "a4006d646174656b6579732d686561640101025820d1704d1c04c10f26587a0d5ea4916c1491a1b10fe70b1bf87058bebc4f1b08e10581a500686e6f74612e7478740106020003060458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685",
"length": 32893,
"lines": [
"Firmado con la clave que guardaste como mi clave de 2026.",
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>
2 days ago
"No acredita que se sellara antes de la fecha de apertura: se selló después de esa fecha o demasiado cerca de ella."
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
],
"result": "ok",
"verdicts": [
"F3",
"S5"
]
},
"recipe": {
"name": "a seal after the date",
"seed": "signing a seal after the date",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
}
],
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0"
},
"sealer": {
"late": true
}
},
"written": {
"body_length": 32893,
"capsule_id": "cd3dea98a8d3a37498417d62e423a09e",
"length": 35611,
"sha256": "48c4326afee645881dfe525ccd3b967339d0c7641d61428b68ae70ae41c339c6"
}
},
{
"draws": [],
"error": "capsule: AuthorKey and CMSSigner are exclusive: a capsule has one signature",
"recipe": {
"name": "AuthorKey and CMSSigner",
"seed": "signing AuthorKey and CMSSigner",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0"
},
"cms": {
"signers": [
"Ana López"
]
}
}
},
{
"draws": [],
"error": "capsule: with CMSSigner the seal goes inside each signature (spec §29.10): Sealer must be nil",
"recipe": {
"name": "CMSSigner and Sealer",
"seed": "signing CMSSigner and Sealer",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"cms": {
"signers": [
"Ana López"
]
},
"sealer": {}
}
},
{
"draws": [],
"error": "capsule: a test area of 512 bytes: a multiple of 512 up to 65536, without LargeArea",
"recipe": {
"name": "a test area and LargeArea",
"seed": "signing a test area and LargeArea",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0"
},
"large_area": true,
"test_area_len": 512
}
},
{
"draws": [
{
"hex": "d6a2be42e390c6ffbee3ba846253344347f56029c3f74b7285b2f74486b0ff24",
"n": 32
},
{
"hex": "96004327a6ca035f29d11eed8699facb",
"n": 16
},
{
"hex": "9acb274c3bd894fc702b444f73c5fbc0af0aabb00bcbe38ebaa5bc8e0885dca0",
"n": 32
},
{
"hex": "8e0fc115a45fde2cd67479f49d0bd9c2",
"n": 16
},
{
"hex": "c3c09dead1651a66eeffe94e459c9ed7",
"n": 16
},
{
"hex": "93cd87bf1f7ca49c3089d69b9ea80d90",
"n": 16
},
{
"hex": "1b3ef520b9f3ea8c0adab52d865c23ed",
"n": 16
}
],
"error": "capsule: the author key is 31 bytes, not 32",
"hooks": {
"author_public": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d20"
},
"recipe": {
"name": "an author key of 31 bytes",
"seed": "signing an author key of 31 bytes",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0",
"bad": "short_key"
}
}
},
{
"draws": [
{
"hex": "a34e427d9b5295028a38e9af063a75f71f2a6101033c5c57ef78c53c27df5078",
"n": 32
},
{
"hex": "331eff1e052cef2b9639bdd53ab1a4de",
"n": 16
},
{
"hex": "e8d2cc322cdc51a8fe40e12ca59d4162d6961057c41274a8a1f909f846a276e6",
"n": 32
},
{
"hex": "56a0ec5d1862a102c8c61c60d75e7233",
"n": 16
},
{
"hex": "d958bbb29f6b9b5691ad9cf9e59c26c1",
"n": 16
},
{
"hex": "0465ab139b776d1c2309ead75d7215fc",
"n": 16
},
{
"hex": "5ff2220411043fef614325ffe5151cf8",
"n": 16
}
],
"error": "capsule: self-check: the reader finds the verdicts F2 and S0 in this security area, not F4 and S0",
"hooks": {
"author_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a323465316438396163363763343937396438396530663063643737633430363336386537646637363637393061336630613665396331613832643936636439330a",
"author_public": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"author_signature": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
},
"recipe": {
"name": "a signature of zeros",
"seed": "signing a signature of zeros",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0",
"bad": "zero_signature"
}
}
},
{
"draws": [
{
"hex": "92c805c421c0e486b888112ac6f77763120d1a444d857005938aee13619205fd",
"n": 32
},
{
"hex": "d17848d05ebd856923eae90e69e6b5be",
"n": 16
},
{
"hex": "275c2aee5d63a6ded2c38b47130b0e7b7ca7c7027c32569be8c591f53d0300e9",
"n": 32
},
{
"hex": "5166ccaf30efaf9077212ec57080a9bd",
"n": 16
},
{
"hex": "5e5ffb3320e8e02c44a435084b250a9c",
"n": 16
},
{
"hex": "19cf4677f57514eaaa5e1c3cbfab650d",
"n": 16
},
{
"hex": "b5d4dd81cd7c781531cb56beafdf6745",
"n": 16
}
],
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>
2 days ago
"error": "capsule: self-check: the reader finds the verdicts F2 and S5 in this security area, not F4 and S4",
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
"hooks": {
"author_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a303730376433653332303735303339653232633637333430626431643439326234343365666461663935656236633339356630313330636162363033386631630a",
"author_public": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"author_signature": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"seal_subject": "bd83ea07634f10df5d21f1097417c76138e7afba63412d30e43ffb2f2b2a4883",
"seal_token": "3082033606092a864886f70d010702a082032730820323020101310d300b06096086480165030402013060060b2a864886f70d0109100104a051044f304d02010106032a0304302f300b06096086480165030402010420d14cd820cb5434b6af69513b4191bb15447e043e6cbf0781d87c88785f148ab202012a180f32303233303832333135303932375aa08201833082017f30820126a00302010202082622f848525703b5300a06082a8648ce3d040302303031163014060355040a130d446174654b6579732074657374311630140603550403130d54534120646520707275656261301e170d3230303130313030303030305a170d3430303130313030303030305a303031163014060355040a130d446174654b6579732074657374311630140603550403130d545341206465207072756562613059301306072a8648ce3d020106082a8648ce3d030107034200046ef0bc1ef2b58337ad784b0097970ae832c2141ea6d989368530d88d42d817e384f3aafa089f4c7c2e2dabf8d521b0b85e91951d93428c10b1935a53693771cda32a3028300e0603551d0f0101ff04040302078030160603551d0e040f040d54534120646520707275656261300a06082a8648ce3d040302034700304402206d7fe9402077e246b91120b105f4bec4abc344b8fe6e0d9abf310c363048c471022006d6f93c781a22b6fd078116b5d6611b0c8f0663e0d50f1a8c437bf23f8067e43182012430820120020101303c303031163014060355040a130d446174654b6579732074657374311630140603550403130d5453412064652070727565626102082622f848525703b5300b0609608648016503040201a07a301a06092a864886f70d010903310d060b2a864886f70d0109100104302b060b2a864886f70d010910020c311c301a301830160414c7f2c3d3abc329906f17b8e81ace26f285d9def7302f06092a864886f70d01090431220420951ca7f3b98713c0ec0304aaebb5d309d52d918adf1c9267ede16cdc5b596ed8300a06082a8648ce3d04030204483046022100f5b3f8c02de7dd4beab8fe4c239b94d316f547df0867fe51ee78a55ad9434eb6022100ba8dae1d3adf99d0964421b3958241572e5b67166091992a025b84f64b03f01c"
},
"recipe": {
"name": "a signature of zeros and a seal",
"seed": "signing a signature of zeros and a seal",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0",
"bad": "zero_signature"
},
"sealer": {}
}
},
{
"draws": [
{
"hex": "5a64ffc30e95ad457560b9142c0f621dcb5d6deb97481005f4dd5066ff156461",
"n": 32
},
{
"hex": "5fa119acfcaae8485bf821fdb693c893",
"n": 16
},
{
"hex": "88785eaa29d4b0aabde07bedf6dd899023417c035e199ac687edb0b4ae69f837",
"n": 32
},
{
"hex": "3e7583aee14d5336ba457dc4b8b95262",
"n": 16
},
{
"hex": "bcbac6ea1b8fa3f0cf89146f41462b80",
"n": 16
},
{
"hex": "ad5df92f6f80516490ed549df29a2202",
"n": 16
},
{
"hex": "587d4c80cbd105a0ddc739823edbe863",
"n": 16
}
],
"error": "capsule: SECURITY_CBOR of 41683 bytes does not fit in the area of 32768 bytes: LargeArea lets the writer widen it to 65536",
"hooks": {
"cms_der": "3082a28806092a864886f70d010702a082a2793082a275020101310d300b0609608648016503040201300b06092a864886f70d010701a082017b308201773082011da00302010202080a2d17d0344c4223300a06082a8648ce3d040302302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a301e170d3230303130313030303030305a170d3430303130313030303030305a302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a3059301306072a8648ce3d020106082a8648ce3d030107034200045d675bbeb635e0726c75605f78e67a0a252c3c79f27b2f8ed9933fdae98893ecbe0a8970f8efd6adfb897f98cf2b493b3f8dbb4d50ba5c5e2d5fa65eda82bc7ca3273025300e0603551d0f0101ff04040302078030130603551d0e040c040a416e61204cc3b370657a300a06082a8648ce3d040302034800304502202b6d1a4052c04638cd70f7cbf1cae6272ceba5b44eb936adc3514aac5e0210db022100bfc3baf1635dec527acd3469c46df24ce66b3e5e10e4efd5b66f31250bd79e913182a0d33082a0cf0201013039302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a02080a2d17d0344c4223300b0609608648016503040201a08184301806092a864886f70d010903310b06092a864886f70d010701302f06092a864886f70d01090431220420f048ead9e270278a6245fba20aa7c4cf34044bb0912ae31cf98c08a2d4e891b53037060b2a864886f70d010910022f3128302630243022042018c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57300a06082a8648ce3d0403020446304402203f81f24d33fc2b8ff3fcf68995c8290757638c32f6604519ae942961a5ad45d302200a673020a1dea816826a836995d937975329fe5b17d1ba5f2d23d42fee2d8131a1829fa53082034f060b2a864886f70d010910020e3182033e3082033a06092a864886f70d010702a082032b30820327020101310d300b06096086480165030402013065060b2a864886f70d0109100104a0560454305202010106032a0304302f300b06096086480165030402010420ef570bfc7b479ee8ccc9452147c3b4b3c7d993471f126aaa873626216b9fe00402012a180f32303233303832333135303932375a3003020101a08201833082017f30820126a00302010202082622f848525703b5300a06082a8648ce3d040302303031163014060355040a130d446174654b6579732074657374311630140603550403130d54534120646520707275656261301e170d3230303130313030303030305a170d3430303130313030303030305a303031163014060355040a130d446174654b6579732074657374311630140603550403130d545341206465207072756562613059301306072a8648ce3d020106082a8648ce3d030107034200046ef0bc1ef2b58337ad784b0097970ae832c2141ea6d989368530d88d42d817e384f3aafa089f4c7c2e2dabf8d521b0b85e91951d93428c10b1935a53693771cda32a3028300e0603551d0f0101ff04040302078030160603551d0e040f040d54534120646520707275656261300a06082a8648ce3d040302034700304402206d7fe9402077e246b91120b105f4bec4abc344b8fe6e0d9abf310c363048c471022006d6f93c781a22b6fd078116b5d6611b0c8f0663e0d50f1a8c437bf23f8067e4318201233082011f020101303c303031163014060355040a130d446174654b6579732074657374311630140603550403130d5453412064652070727565626102082622f848525703b5300b0609608648016503040201a07a301a06092a864886f70d010903310d060b2a864886f70d0109100104302b060b2a864886f70d010910020c311c301a301830160414c7f2c3d3abc329906f17b8e81ace26f285d9def7302f06092a864886f70d010904312204200157fe5279891a7cf861e3eb172af35fb3315f371602ff3137f73cf1eb51ab61300a06082a8648ce3d04030204473045022100b78f6a30c1155b6f8191f02513ab5aa5fb72f06211460cb5dc2532f01f6974430220324ea0dd97181e59020969576e5171bca76a585eb472826777d3a8230e1414f830829c4e06042a03040531829c4404829c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
"cms_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a613361383230363366333063303430663562656566326134633736303332623137353238353832336438336133383864646431643535666134393135356630320a",
"cms_signers": [
"18c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57"
]
},
"recipe": {
"name": "alg 2 that does not fit",
"seed": "signing alg 2 that does not fit",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"cms": {
"signers": [
"Ana López"
],
"junk": 40000
}
}
},
{
"draws": [
{
"hex": "66c8963e7ce6daa083ffb06565954cb2918751516f69e946786e2af042e23bc2",
"n": 32
},
{
"hex": "dfd6d1f07af702576856f7a07a350266",
"n": 16
},
{
"hex": "32ba6edd5ea9bb2231dd3ff16fe3d4dcf7da0779ab95d1090764e9c791761bb6",
"n": 32
},
{
"hex": "92676da921d3578af542d54e39421bb5",
"n": 16
},
{
"hex": "484851bb8f9752fd2bbacba3bd0e9c1c",
"n": 16
},
{
"hex": "d501a54e77b060190be4529994ccd045",
"n": 16
},
{
"hex": "41a7e5946057a98287a7f8cc0a4d20e9",
"n": 16
}
],
"error": "capsule: signing: la persona canceló la firma",
"hooks": {
"cms_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a343936636231363063656430373136653661613932313437376563663265326665643430353933373262656136313832356436333334393263373031623364630a",
"cms_signers": [
"18c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57"
]
},
"recipe": {
"name": "the signing application fails",
"seed": "signing the signing application fails",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"cms": {
"signers": [
"Ana López"
],
"error": "la persona canceló la firma"
}
}
},
{
"draws": [
{
"hex": "50dcb612af63c4a09ce333555bb6179441658aa40af92eda50f7c0ad6a52c4f3",
"n": 32
},
{
"hex": "01dfa447971c86b085298a4f5a1ce469",
"n": 16
},
{
"hex": "7f573351a2508178ea6c5fa85ce703f85f679a703e8d08d8df4f385a964de177",
"n": 32
},
{
"hex": "580e791f741820a4ef2a9487a82bff76",
"n": 16
},
{
"hex": "e5cea15489363e52e984982fca9e08be",
"n": 16
},
{
"hex": "4da7865d2eba2c0e1ad46fe826ec2774",
"n": 16
},
{
"hex": "80023a6fb5a13103ff252f232351c95f",
"n": 16
}
],
"error": "capsule: sealing: the authority does not answer",
"hooks": {
"author_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a343337663861323036326133376637376263323366393966343930323832623637343233326134373237353132613434353030643534626563666631613238660a",
"author_public": "0b47823e71095dd59be78ac271c576ef389f87b64561ab07cf9a4ebcd02d2041",
"author_signature": "1611fcdbb162b17aee1be16216e9f9394dfe72b26149ac7e6225fef0897246afac915a151376abe6c6e30517fc834e94798fb270a3522e5462fb72b29eaeee07",
"seal_subject": "0fbaf10d255e6c081e37d585c6ac172b140f74ebde40419f0295d86f863d2d04"
},
"recipe": {
"name": "the authority fails",
"seed": "signing the authority fails",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"author_key": {
"seed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0"
},
"sealer": {
"error": "the authority does not answer"
}
}
},
{
"draws": [
{
"hex": "f28e93dca9effa1853702ae1f79791b02030884622a936584a1b096fd9dc23f0",
"n": 32
},
{
"hex": "5d03a65b405425ee97fcacdeb573e167",
"n": 16
},
{
"hex": "772db02a407e31b923eadcb7420cf5909fcdb19497dcf24732b0257133e49b11",
"n": 32
},
{
"hex": "99279eafb569831f48772121d50c89ec",
"n": 16
},
{
"hex": "0e93574066e87963aa8a744c2ed694b2",
"n": 16
},
{
"hex": "374f12af4e4e3ddc0763fb7efed8fdb8",
"n": 16
},
{
"hex": "e57cc34c77cda64b08043e4fa9cd911d",
"n": 16
}
],
"error": "capsule: self-check: the reader finds the verdicts F5 and S0 in this security area, not F6 and S0 (dd8dad5bfb2e4f8bacaa054ebfba5542d7b95fe4b82eba383b8cc1e7af03d18a: absent)",
"hooks": {
"cms_der": "3082063806092a864886f70d010702a082062930820625020101310d300b0609608648016503040201300b06092a864886f70d010701a082017b308201773082011da00302010202080a2d17d0344c4223300a06082a8648ce3d040302302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a301e170d3230303130313030303030305a170d3430303130313030303030305a302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a3059301306072a8648ce3d020106082a8648ce3d030107034200045d675bbeb635e0726c75605f78e67a0a252c3c79f27b2f8ed9933fdae98893ecbe0a8970f8efd6adfb897f98cf2b493b3f8dbb4d50ba5c5e2d5fa65eda82bc7ca3273025300e0603551d0f0101ff04040302078030130603551d0e040c040a416e61204cc3b370657a300a06082a8648ce3d040302034800304502202b6d1a4052c04638cd70f7cbf1cae6272ceba5b44eb936adc3514aac5e0210db022100bfc3baf1635dec527acd3469c46df24ce66b3e5e10e4efd5b66f31250bd79e91318204833082047f0201013039302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a02080a2d17d0344c4223300b0609608648016503040201a08184301806092a864886f70d010903310b06092a864886f70d010701302f06092a864886f70d010904312204205e81a21cecfbbc3e5b4b53f0afb8035781f10be3fdecbdd8ead8e8e80fa6ca613037060b2a864886f70d010910022f3128302630243022042018c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57300a06082a8648ce3d0403020447304502210085409a83e3669fdbae407da6f151146f6684be5abc2137f7aa65c4f8c6d9495602203cee2041407981b0966b2279fae23bde6b0c9ecb4f2b53db210df006f367b7d4a182035430820350060b2a864886f70d010910020e3182033f3082033b06092a864886f70d010702a082032c30820328020101310d300b06096086480165030402013065060b2a864886f70d0109100104a0560454305202010106032a0304302f300b060960864801650304020104200855bd7007301b3be5fd5fdeb9e78e10ea39052aa6ec21b73c0d997a9392fe5e02012a180f32303233303832333135303932375a3003020101a08201833082017f30820126a00302010202082622f848525703b5300a06082a8648ce3d040302303031163014060355040a130d446174654b6579732074657374311630140603550403130d54534120646520707275656261301e170d3230303130313030303030305a170d3430303130313030303030305a303031163014060355040a130d446174654b6579732074657374311630140603550403130d545341206465207072756562613059301306072a8648ce3d020106082a8648ce3d030107034200046ef0bc1ef2b58337ad784b0097970ae832c2141ea6d989368530d88d42d817e384f3aafa089f4c7c2e2dabf8d521b0b85e91951d93428c10b1935a53693771cda32a3028300e0603551d0f0101ff04040302078030160603551d0e040f040d54534120646520707275656261300a06082a8648ce3d040302034700304402206d7fe9402077e246b91120b105f4bec4abc344b8fe6e0d9abf310c363048c471022006d6f93c781a22b6fd078116b5d6611b0c8f0663e0d50f1a8c437bf23f8067e43182012430820120020101303c303031163014060355040a130d446174654b6579732074657374311630140603550403130d5453412064652070727565626102082622f848525703b5300b0609608648016503040201a07a301a06092a864886f70d010903310d060b2a864886f70d0109100104302b060b2a864886f70d010910020c311c301a301830160414c7f2c3d3abc329906f17b8e81ace26f285d9def7302f06092a864886f70d010904312204208d82bc5c59472efcf393b3d6ace9f576e6b4ee23fd619666ee03879b125edbca300a06082a8648ce3d04030204483046022100c97d0b52d77819cb188cf80a0678c46818725087d7db44098478da61375c9e66022100d56ff0efbf0b17eeab4a467ae99810227df038ce2f1c42697d3fa0532c0e72bd",
"cms_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a396462663136376138636232646338623635313063666365616465303265323633333164653433653932346161633137633839626265663232616365373936320a",
"cms_signers": [
"18c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57",
"dd8dad5bfb2e4f8bacaa054ebfba5542d7b95fe4b82eba383b8cc1e7af03d18a"
]
},
"recipe": {
"name": "alg 2 without a required signer",
"seed": "signing alg 2 without a required signer",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"cms": {
"signers": [
"Ana López"
],
"extra": "Luis Gómez"
}
}
},
{
"draws": [
{
"hex": "bf770c71ddc7b041e00a4efa30f04c21f8332b809a7446229f26c0a884289f28",
"n": 32
},
{
"hex": "5bff44633fb364e11bec508889a401ca",
"n": 16
},
{
"hex": "137ec19bbd381b387d6bdda6dde481f45c1d29dc176096c1051911e1aa9efd9c",
"n": 32
},
{
"hex": "dc9a6817c36e9bcf17666053b333ea30",
"n": 16
},
{
"hex": "c894bc7b1f95f8e155ddd1b15e73dafa",
"n": 16
},
{
"hex": "93feeade89bd990b7a76c435cc62cd1b",
"n": 16
},
{
"hex": "222270db7e7300dedfa0666d8ba0384e",
"n": 16
}
],
"error": "capsule: self-check: the reader finds the verdicts F5 and S0 in this security area, not F6 and S0 (Luis Gómez: without seal)",
"hooks": {
"cms_der": "3082052e06092a864886f70d010702a082051f3082051b020101310d300b0609608648016503040201300b06092a864886f70d010701a082030a30820306308201eea00302010202080ad004b9634ce59e300d06092a864886f70d01010b0500302e31163014060355040a130d446174654b65797320746573743114301206035504030c0b4c7569732047c3b36d657a301e170d3230303130313030303030305a170d3430303130313030303030305a302e31163014060355040a130d446174654b65797320746573743114301206035504030c0b4c7569732047c3b36d657a30820122300d06092a864886f70d01010105000382010f003082010a0282010100cd098bef678864c7241a3139b9615d0dc67c7116757b230dd46496bb2ae79a6b8ba575fb0da9e7176c8ee87d58ce45bfb81c81a7baeec70868fd7eeaea8b3014f97d32bbdd17866d456b55b64d7852406e7e36c17375865e075bedda9ff6d9154376eac17864ae346cebc17d152a5955a97cf460520d92384c2467e2a56af74e1de182b99c12f6abfb8662654aa62807da1488d203a18b9265552f4b2af4d3fea499d03dca4220a2e9ba3578f60b249e00b1720314f2bd3c1e3be6649cc77f235bf2dab2081e71a0f7352ad14113947ca52722f7a489f40b5ef440ff9c60566638b9b190b7c5d242bf433cb75b2cd7eb1e2ebf0bc1bf59d6c684639aa6c626810203010001a3283026300e0603551d0f0101ff04040302078030140603551d0e040d040b4c7569732047c3b36d657a300d06092a864886f70d01010b05000382010100aa2ba12dc3b1f785f3a90d2665805216607f2218d8cdeed5606c4da2cf3546ae5609b28014bab3eb89a2c7beea84b4f302c731cd8f5c1550a9e6f564c3ac9a26d4318deca828b664c08221a9ac84a8054766fe149bdd1b6315739d356f5a9589040116cff08dbcaf7670f7bd0d11fb573c003261dbbfc33c0ea562ca1d19ceeb498270c2fb1669c37a5c1c0be2046f571873078ff75f08a37474adaac31abef97179d356493a0ad5b9709046a69dfc099c9d55011c0b6b177ef2daf8426544441bb10bfbccab4d46ac949a5d0c76ec95a71121277d888ec6e9f1c841f2cfec449653b92168428c3461bb3f96266c383b7fa3922639a6f62eb9eaf7902defeece318201ea308201e6020101303a302e31163014060355040a130d446174654b65797320746573743114301206035504030c0b4c7569732047c3b36d657a02080ad004b9634ce59e300b0609608648016503040201a08184301806092a864886f70d010903310b06092a864886f70d010701302f06092a864886f70d010904312204202e3bd788293dca8cab18b4d2e6af0155b3be7f625db065dea356dd76ab36e8f53037060b2a864886f70d010910022f31283026302430220420dd8dad5bfb2e4f8bacaa054ebfba5542d7b95fe4b82eba383b8cc1e7af03d18a300d06092a864886f70d0101010500048201003c91142612f03c2db64812b4eb5f23823f362078a7e807db3acca487a30ab4bc016827ee1c663225c57a4ec356936070ead9f96d252b57421da42788c3f8130be27206d1a5cbb4c3486e9a3a3f6a06f598c1009bf7817b78eb563c39fb599f52ec431b2fd1fa25addb573338c806839879548db63381678f7d4f8fbc9bf7390770e0fca1539a363f6de16e7e950bca619489088d9b82984a99a657fb8576a10a99c2241e1c07c8a3a8dd8e32d08e333b9ff8e9b7b4d69423544a95d141b84d72657840ee68dcef110ea7981abf78a33c12c7c27aa82b4424fdcf74738fb09b996cd570984fbd433d000e5ee7ba1735d031852750ac0d9fab1f406ab3c6e56a70",
"cms_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a666135376265323238646633656665303761306435663433316165643131306533373030626533326437633434613462346130356234356361613734366436350a",
"cms_signers": [
"dd8dad5bfb2e4f8bacaa054ebfba5542d7b95fe4b82eba383b8cc1e7af03d18a"
]
},
"recipe": {
"name": "alg 2 without seals",
"seed": "signing alg 2 without seals",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"cms": {
"signers": [
"Luis Gómez"
],
"unsealed": true
}
}
},
{
"draws": [
{
"hex": "aa9fd313beaa4554e37252aec93afbff2968b0139ee3167ff9e088ed1d56d091",
"n": 32
},
{
"hex": "ec55e7549b59a20d39583f8cee030cd3",
"n": 16
},
{
"hex": "eff15b68aea4085d6e3ec2d5ab59474201862dfea66e28a2a12bca1b0f8e6b35",
"n": 32
},
{
"hex": "c367f34a301927564e414157c8e78cea",
"n": 16
},
{
"hex": "7c5a357cf93d914f9559e855e5507d06",
"n": 16
},
{
"hex": "472920e6d68afb93ffa6176807088ea8",
"n": 16
},
{
"hex": "3b7afe3197d420a6e681b1febb12a670",
"n": 16
}
],
"error": "capsule: self-check: the reader finds the verdicts F1 and S0 in this security area, not F6 and S0",
"hooks": {
"cms_der": "6e6f742061207369676e6174757265",
"cms_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a643733663866636564333964383566393931626339643664353263643563646335333062333661343432646538646637646662626461646538336139303438620a",
"cms_signers": [
"18c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57"
]
},
"recipe": {
"name": "alg 2 that is not a signature",
"seed": "signing alg 2 that is not a signature",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"cms": {
"signers": [
"Ana López"
],
"garbage": true
}
}
},
{
"draws": [
{
"hex": "98e07769751b8c04501562882693e19fc950ac578b5b55df4f545aa90c5597ee",
"n": 32
},
{
"hex": "9808b1d4e3c0ba59eca769fb7f12c0eb",
"n": 16
},
{
"hex": "39fd1d69f8d497ba056f3fbef500325cf120e4bc1de9a028398b82d8822f2e56",
"n": 32
},
{
"hex": "c04083ee6a49bca79e50d1ea956ad692",
"n": 16
},
{
"hex": "827f8af97e8094fdc74a4d60780f7116",
"n": 16
},
{
"hex": "1945db433314e152bd08bc220a4263f0",
"n": 16
},
{
"hex": "d719915db153b655795782f2b38642cc",
"n": 16
}
],
"error": "capsule: SIGNERS holds from 1 to 16 certificates",
"hooks": {
"cms_signers": []
},
"recipe": {
"name": "SIGNERS empty",
"seed": "signing SIGNERS empty",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"cms": {
"signers": null
}
}
},
{
"draws": [
{
"hex": "fcefc5bbfcea77fe240c6c96459678d62e47ae85ad5ba7daa1d0ad05c0bafa6e",
"n": 32
},
{
"hex": "58ff80d7345243283845b14b638f1e62",
"n": 16
},
{
"hex": "d80c97c2a4c04ed7c656df3f680f73a9e92e540e181a9577cec6a0459615a8f6",
"n": 32
},
{
"hex": "0fc85e6ac7ea0310c8ac7ca9ff1f539c",
"n": 16
},
{
"hex": "82fac16dff61cbb0bb192deae3f8ea62",
"n": 16
},
{
"hex": "8d0349c736e6c17eb20c4b22fbba659f",
"n": 16
},
{
"hex": "ffd971b1734880fc169a0d7fa8e9bdd5",
"n": 16
}
],
"error": "capsule: SIGNERS names a certificate twice",
"hooks": {
"cms_signers": [
"18c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57",
"18c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57"
]
},
"recipe": {
"name": "SIGNERS twice",
"seed": "signing SIGNERS twice",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
},
{
"path": "fotos/año 2026.txt",
"text": "Una foto que no es una foto.\n"
}
],
"cms": {
"signers": [
"Ana López",
"Ana López"
]
}
}
},
{
"draws": [
{
"hex": "35dde73f707fca13bec8b03a287de0aa2b611176838ba98d2d341d0a75a89eb5",
"n": 32
},
{
"hex": "f4c0f00d687a317470a1888726590243",
"n": 16
},
{
"hex": "999031da8a915056ebee4629fc0db0dd424d23f1a8b72dc6cc13c26950523275",
"n": 32
},
{
"hex": "88c6d4ca4bda53c3adfc1a6f6b1566ce",
"n": 16
},
{
"hex": "0116a6433f7d2ce28852f63d8fea8cde",
"n": 16
},
{
"hex": "de781149c1c848ff50088f78f23abaab",
"n": 16
},
{
"hex": "b0b8a9a17d42315a66ca27b1e0430a48",
"n": 16
}
],
"error": "capsule: SECURITY_CBOR of 65561 bytes does not fit in the area of 65536 bytes, the largest",
"hooks": {
"cms_der": "3082ffce06092a864886f70d010702a082ffbf3082ffbb020101310d300b0609608648016503040201300b06092a864886f70d010701a082017b308201773082011da00302010202080a2d17d0344c4223300a06082a8648ce3d040302302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a301e170d3230303130313030303030305a170d3430303130313030303030305a302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a3059301306072a8648ce3d020106082a8648ce3d030107034200045d675bbeb635e0726c75605f78e67a0a252c3c79f27b2f8ed9933fdae98893ecbe0a8970f8efd6adfb897f98cf2b493b3f8dbb4d50ba5c5e2d5fa65eda82bc7ca3273025300e0603551d0f0101ff04040302078030130603551d0e040c040a416e61204cc3b370657a300a06082a8648ce3d040302034800304502202b6d1a4052c04638cd70f7cbf1cae6272ceba5b44eb936adc3514aac5e0210db022100bfc3baf1635dec527acd3469c46df24ce66b3e5e10e4efd5b66f31250bd79e913182fe193082fe150201013039302d31163014060355040a130d446174654b65797320746573743113301106035504030c0a416e61204cc3b370657a02080a2d17d0344c4223300b0609608648016503040201a08184301806092a864886f70d010903310b06092a864886f70d010701302f06092a864886f70d01090431220420b74b0df5c3ded4accc1214a11852a9e343d82732a6e4b423486bbbfca904d2af3037060b2a864886f70d010910022f3128302630243022042018c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57300a06082a8648ce3d0403020446304402206aa2b25328610af017b07300e777f44ff5a1a9b52f00a9333e7d12ddbe3ef02f0220688d717173315aad2340ca5d59619f9afa9b0359c059f1907e02cfbf042cf481a182fceb3082034f060b2a864886f70d010910020e3182033e3082033a06092a864886f70d010702a082032b30820327020101310d300b06096086480165030402013065060b2a864886f70d0109100104a0560454305202010106032a0304302f300b06096086480165030402010420afac0dd657d05d4348f1506d41109901f5e2c11272f70d2eee82e2f6ef599afd02012a180f32303233303832333135303932375a3003020101a08201833082017f30820126a00302010202082622f848525703b5300a06082a8648ce3d040302303031163014060355040a130d446174654b6579732074657374311630140603550403130d54534120646520707275656261301e170d3230303130313030303030305a170d3430303130313030303030305a303031163014060355040a130d446174654b6579732074657374311630140603550403130d545341206465207072756562613059301306072a8648ce3d020106082a8648ce3d030107034200046ef0bc1ef2b58337ad784b0097970ae832c2141ea6d989368530d88d42d817e384f3aafa089f4c7c2e2dabf8d521b0b85e91951d93428c10b1935a53693771cda32a3028300e0603551d0f0101ff04040302078030160603551d0e040f040d54534120646520707275656261300a06082a8648ce3d040302034700304402206d7fe9402077e246b91120b105f4bec4abc344b8fe6e0d9abf310c363048c471022006d6f93c781a22b6fd078116b5d6611b0c8f0663e0d50f1a8c437bf23f8067e4318201233082011f020101303c303031163014060355040a130d446174654b6579732074657374311630140603550403130d5453412064652070727565626102082622f848525703b5300b0609608648016503040201a07a301a06092a864886f70d010903310d060b2a864886f70d0109100104302b060b2a864886f70d010910020c311c301a301830160414c7f2c3d3abc329906f17b8e81ace26f285d9def7302f06092a864886f70d01090431220420bc1d36db014bbff4b6813bad4cb367e02ebf9415335b4639ef1588a29a281ee3300a06082a8648ce3d0403020447304502201ea88df142a0894a3552ea5280083079895e50596acbf956e6f8981badbb2dcf022100a9f0be6ebc172d2ecdff3a2982e2c95d6c180cc397cd0d4127934027ebc85a493082f99406042a0304053182f98a0482f986000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
"cms_message": "646174656b6579733a646b63333a617574686f722d7369676e61747572653a76310a343864666662396639303931393830313239373361653038666535363434343032326565336436383433626134626138366439306133316230646464633462370a",
"cms_signers": [
"18c0b89a0b811cf49d8ae0bf0b978c6e408c0bafc05f2ceb1e0cc6d39f746c57"
]
},
"recipe": {
"name": "alg 2 too large for any area",
"seed": "signing alg 2 too large for any area",
"files": [
{
"path": "nota.txt",
"text": "Hola.\n"
}
],
"cms": {
"signers": [
"Ana López"
],
"junk": -1
},
"large_area": true
}
}
],
"description": "What capsule.EncryptFiles of datekeys-go writes when it signs and seals, for each recipe, while crypto/rand reads the keystream of ChaCha20 under SHA-256(seed) with a zero nonce, with each draw and what each hook was given and returned, and how capsule.Open reads it; the text of each error; and how capsule.Open reads the samples that encryptFiles of datekeys-ts wrote (scripts/signing-go-vectors_test.go). The capsules are time_only for round 1000 of Quicknet, written at its genesis.",
"go": "go1.26.8",
"release": "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39",
"samples": [
{
"author_keys": {
"dkauthor1xes558a6zzqw4urrz8c80u33znlv2yzc9t9f5ywa8a0c8ysq9atqt2k706": "la clave de prueba"
},
"dkc": "444b43310300000000000079000001caa5006a646174656b657963617001010250fbd7b028025192bd06cfe77dcc6f255a037853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d483004006167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a75667144596756764f4862654b4e6549666f37746c6e5454714753547431646e61795367776a77764d54643834717675574b7a347a7174323358716868742f6c0a47432b4a6c70575a4a7745384c6d614b4e354c644f356c656e5838494b6b36676838744c66736a2b38636d4a415477303065376c4b6e6b7a35793037644565380a666f6a456a36536e2b77706679712f6b557355622b7a6871557a4e366567597161724763322b2f614f58770a2d2d2d2061366b456e494a72726a5551366b616877506a7076504b53377078744f4b6d737a51735453536c68446e450afb4d4a3459a132b53148c44d1477f2a24bf93b6ec872633ff60bd1cbd3e2b00ed28b8fc107bf2ac5cf849bd405692cf08b170a8a3c0421357188fcd6c68e1256cc247c30e8429625d2674c66dd5e3ad7b7eab629d1034a58c34d07fb5e06da78765b4cd1c9a69d767f4846491079c48981364da293ba3110179f1a40a0bca41760f72a55e6bc9c6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139203946324f35366f5235766b4c314b4432614b44456c2f6132327143657648514e7058534b47567a5378566b0a7478364e44677653686f51492f6b49745644484970572b656e7331565436474c4d5466426c4c363254794d0a2d2d2d204f2b744263474459476854306f537651645231386867783854616255346e676e624e3847744345595a67550a921898a28f2d406d03a0d70cbf13264caf3eefa8c94bc2ccf6b46eab542279ede91214b15fb3f3a9775d590ce600533d6db4ae4183f812a31ef0f3b9c9cd4e7319caa87a620cb6fe92bd28111b38989f091d5a9e0c886dbe7b62a10e166089b03b15caa23e6e3cee17c284613d1a47674c80c791af773a355ec863fe018370753f13b50dae2515af994c700e847eab79006de9da4f3728a086452923a4bca4377c3cde7b7a91c10676f21472b8b70d9f07c2a4eea205df80018a8471e345075803e8c0cea4c980c2ae3cc6075babbe06821d9760d12fd3103c98c00484c9e19fc08148ca99a525f91e327c142deac9a47300ae3ac6c0bdb10be722c9d2bc732fee169aa75174f795a41e50781108d84b7cb113e1f46fee276e1d45665530731c4b39cc09e71c1e59b9a7b848eac55bd5af776ce75b62abd756d2fd9f876fc84b55c16ea3fb77af391b06023c6a529eb82c1862e86b3a13d354ca81d3a4ba3d2f9e3bbd1af24218c263555f663a6748b68caf5a1740078fbd63065e704f59a26fa7cccbf967c0448cab1d2cb3dc91dcc2de120220d2eb9ed8cbd870f357f2e0c52ac45cb73d264fad59be1027c423611135424a476b2c59507144f6d5899ebcb1ee11d315fc1096794ccae9a68889e0eb3603ffd81d9d049a3d743926eba1378f17c088cc78190e3fe74c8e6d1c67c04ee012c82287e0d310e5b86638a59431999e13ba2f5f51e4fae283bc7f534c83d0f4a6a819ab32ff2258ecdb9869dcd0297b5a5681687507a5acbb8e660b9d100708be17f2177072b1ad7ca66a837b5622f1d027f0e5e65476ee071623b00e391ff991af864be3b8778eb7b00b651ec34cbcee85458c3d64cabd68db3013edba12a3ff5d85c010518aa4ced0b75282d7cc90b2f49017cfbcd1d3ccdb43d4a3825604dad4ad5c7deadde8afe0f9576bd4a3e57a919966ac49bbc357c2751c77b47efc5aafa64e6561a472703c9191762704ad16d00225e01309f3f477295e2da18a89c297b9a4ad72bc0ce94d1aa18419fb29939e257b335f7de81ffb585dbda2d47fb61feb161ba4d0de0538c75d8a0908037cadf36832b265f9896f03ebb9d1ad24792e4bf73207fd8c88c0c80a6fd9a30f5d6d52b3ea50b45fb19ccd59115d3b3b3db69298faadb16a50b356741acae20322f578fbf4a0b5d5cdd6b0c33ea777563e189242915413f2afadeb6e0d73be5f774ad0352edcec25ace16657a68d114ef0a5e420d7a68b879ce868d051b7a1f98996dfe881cbf0c82fbff44bc07893c0131bda2735206a6a3c7175328d2be88019888fb3611b0375aca2f11a93aaa8c69b95b18b50ee8b31fc58dd3323efb5237f32652f78df45c82c09b987697fc7a9b892aaa76043daee8a9c44a07b31c33ba7af9e017bc0da87064f57e8c2e122f1e868ca997f4f46274518c4fff648f189e46fb7bc768a69d6ebf9afa5f5363d7563f2bf68be62b7ad6269f155faddab78960c249b6864a83dc1533cdb53cf5f06129d80211323ad01b51dd14fb989dc65787c3019e52b3f99d598e435049b8b471411229cd52fd1dc7b0bb60e20ee11faa2f099dbdf8369fb42464ad12f075659b1bbd6fa1760299ff01004a3463a6b8f86c2230f454b034592c9b779300b748c21bc1c26c81ceecd1fadc63d85b0c97b1d5c2058beb530afaa289278da71cff7a7544365e9772fe5ca84202adbf09152c1fb7f7f936e16d0847e2933a5b4d48959b8d48e2d104ba72e32cbaeb17b87e23372efbe009940e662337c77c7f8de80917c00bd82bd6fbc417108e6a4f1
"name": "alg 1",
"opened": {
"area_len": 32768,
"author_key": "36614a1fba1080eaf06311f077f23114fec510582aca9a11dd3f5f8392002f56",
"files": [
{
"path": "carta.txt",
"sha256": "03099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3",
"size": 13
},
{
"path": "docs/año 2026/acta.txt",
"sha256": "877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"size": 21
}
],
"head": "a5006d646174656b6579732d68656164010102582057d4a40ff84250ec392aefe5132e5837480aad335a1191842161bba9faac00cc03684669726d61646f2e0582a5006963617274612e747874010d0200030d04582003099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3a50077646f63732f61c3b16f20323032362f616374612e7478740115020d031822045820877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"length": 33000,
"lines": [
"Firmado con la clave dkauthor1xes558a6zzqw4urrz8c80u33znlv2yzc9t9f5ywa8a0c8ysq9atqt2k706. No prueba quién la tiene."
],
"result": "ok",
"verdicts": [
"F4",
"S0"
]
},
"opened_saved": {
"area_len": 32768,
"author_key": "36614a1fba1080eaf06311f077f23114fec510582aca9a11dd3f5f8392002f56",
"files": [
{
"path": "carta.txt",
"sha256": "03099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3",
"size": 13
},
{
"path": "docs/año 2026/acta.txt",
"sha256": "877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"size": 21
}
],
"head": "a5006d646174656b6579732d68656164010102582057d4a40ff84250ec392aefe5132e5837480aad335a1191842161bba9faac00cc03684669726d61646f2e0582a5006963617274612e747874010d0200030d04582003099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3a50077646f63732f61c3b16f20323032362f616374612e7478740115020d031822045820877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"length": 33000,
"lines": [
"Firmado con la clave que guardaste como la clave de prueba."
],
"result": "ok",
"verdicts": [
"F3",
"S0"
]
},
"ts": {
"area_len": 32768,
"lines": [
"Firmado con la clave que guardaste como la clave de prueba."
],
"verdicts": [
"F3",
"S0"
]
}
},
{
"author_keys": {
"dkauthor1xes558a6zzqw4urrz8c80u33znlv2yzc9t9f5ywa8a0c8ysq9atqt2k706": "la clave de prueba"
},
"dkc": "444b43310300000000000079000001caa5006a646174656b657963617001010250b0d73887868ff62095513d43840b6826037853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d483004006167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6f76585874776d6d75392f5733596e65316a6c3076362b686c6f582b57485167324e47423264516a557733514151633968524c65597a68573478374c6a7649350a446b574a344b35342b66315057432b73635965314555675a74504731367778774e4d57384a494e39466361647a55442b545558784b486b6745693438596a67420a2b586c705954384756364d4b556132753133756d4e767a354b73617667614132336672754a3258362f2b590a2d2d2d204258376f354d55464e4333655961434f6b546b644d7770356e594368727444694671765850484736567a380a95b5fdab284f2c912d3cc7fa5220bb8fb17735d48aaaf178b445531d2b9174010da6f170f6f00e5a6dedb30100941854b97777c8491851d8c858c67b004b0c9d95b8e4de0d26715919f88728941d107e5eff2e25dee286f66c10f0116d146fe7ebbaeb5f623e2f00c636bde966562cb3511a46be2dcb4b87cef9596bc244d9546af1d0805fc9766167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392074334c376c7452485367614547355050642f395a2b4f36515657334c696770744d5366544f4365426557450a4f716337796e5177564f7936437a4c77554d2b796c52437042756d394c6c384f4e646a384a63397035676b0a2d2d2d20586d4f50556347446548646443465034727036466d4f506f49336e526744476b3567746b2b37492b44686b0a717ee95e409ad8eb56743f91115a638195daad8a0a21115923f987ee465268e4a24a7bcc1d9b078764713f92a99b42b626f1d3104e6020df63beb2435ac2fa502fcbbf1151459e9ecce2e0172f87c273f86e37a13587c843e95b908ce5a47c3e08144586f7b82d00d4fd768325ca119e970349aefc826c4e18b76e0b3abef27ba5103769da9545cbff2bb3a8d6f648e2787c6484d081fbb22ae99f16282a5e3e9d21ea9e755059621be30da09094dc0dfcc2eabb58086eeccba5d5e1dfccb36b2bbd6a756f48ae30a30e89fc2d15f6603fc8e5addc6e5fb94d2a2c2e1785f55523c955cfbbfcbf57bcb2172e24423247b1c6d3f8ea855c1580332968f019c972df66fb15ad7ce239e726de654e59b7d2fc3844049c7a3e3f6f292d29a3f90bf0e835765980cf6d076e714af76136db1ffcffcdda239f6473a0f85d1c5f1fc5932ce2d4afd4195a50c862c0354d5e522ec9cc6ca7c84f258290d6c478c4e26ab255cffa3d7db1046d0ad60bb4376460eb53c4803bd69cb742211281382d5875562cc441298816a509b00b8c34c21c7889b65408c7d8f30b6bbd267f60fe8ed9343d6db977afc1fa9f02b338d1e7b6eafb863b69614c188ce3949fd22a7023550967950be80bc1f6b5b0e34dbcb79f1139e34b0d052d1088035b883c96f5a2d78e4f1bb55f0bbadc6aa628614146bf52f09be4c59996786748065aea2cf5c1d8c3a4abede840449d70ab59ce38c9b6ef8c58739cb4e06d483012b022c7e7ce1afe73c06a9503d1666db315c34e80b9112a8099bacf9f0032ec2408b884679b854accb617fd6e79d986257fd22439baff5be058b5482b91f2b0c414c818c0a340740b3964501ff1f340e6af0c6b3897fdefc37ae39feb80025a0f525bd4f35d7f23bc01c0dc3af897f4553d9af9a2b25da22e48b800f6baa8e97582ae7ad8a1d2d1aa6f4f0d006e18274e5d26003ce8839e36fa6edf97a62685c81adf51ecce8aab52550ecf187f2cb169c0158662254d3b225f900241e9a4a576d6573e2bb31b00f3ba97a2e779fd1ee1178ec54b44731db44193ba569e71e2a34d7808ef5939b30c0e0e14b95823094342df15943bf141608c0f5c3ad56bb2a7915c1f7a2c348ba56134c81c5492f1084f36ba2efc058fd109dbbea43f70aba6c3a67e479605e299928bf5f6c7e378f06ef39d63e81cc172bb6e0185d65d015e9a84309a69deaba5266e7e7326be1701543051121ec33fc691821fec2df28c555a60d12b2eb0b4f2887f87fdfe74b394bb5a8bdf59728b7b88f044844e18a127f8a758f2acbbe613a8ecfffbb4b5be5953555ec830518a471827a162df1d1760575cbe3cb8434ffa57efb8d5fbd9aa25f5522a2691e965e16c46c56f3fb6beb851e6c5f98d0f8da8afcbc493480bbb92cc6f258b23c2e9e5adb0f64edaa3436091b2e423d5a38637a7633427b1ec5486610027543399bf96acd27dc8084ee698961c80647cab320c99cc5948f4033d6557adb207aeb03c27116d4a904322e373973c4f48dc2c71ef59eaf1f57f9c3529beddbb1e62ebdd1817b578a096e2c6060baf2844258116f543d6cf93b831187f720fb26067dc546d43f56bfb2eab9d98dbef68a38ca5966f86379c40aeffbbd88761c6c3be60214f5a5688db1a7f7df2b286f05a87db28398ca3dae58602ccffef77540c988dbec0b6a1d88119daa22e5cd8d2c878362e04be39583e04829ec1b58c6901e0d0ed12d42415b7ecaf9234e88b362e9a5c3945841232562511b773912fcb9231f958a18a96dde439f6e9be928af8429b7d
"name": "alg 1 and a seal",
"opened": {
"area_len": 32768,
"author_key": "36614a1fba1080eaf06311f077f23114fec510582aca9a11dd3f5f8392002f56",
"files": [
{
"path": "carta.txt",
"sha256": "03099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3",
"size": 13
},
{
"path": "docs/año 2026/acta.txt",
"sha256": "877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"size": 21
}
],
"head": "a4006d646174656b6579732d686561640101025820d83020f6577c7107d2acd42c3c87900cd9952e505740e137c246718d5ba00fe50582a5006963617274612e747874010d0200030d04582003099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3a50077646f63732f61c3b16f20323032362f616374612e7478740115020d031822045820877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"length": 32990,
"lines": [
"Firmado con la clave dkauthor1xes558a6zzqw4urrz8c80u33znlv2yzc9t9f5ywa8a0c8ysq9atqt2k706. No prueba quién la tiene.",
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>
2 days ago
"No acredita que se sellara antes de la fecha de apertura: el sello no dice su precisión."
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
],
"result": "ok",
"verdicts": [
"F4",
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>
2 days ago
"S5"
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
]
},
"opened_saved": {
"area_len": 32768,
"author_key": "36614a1fba1080eaf06311f077f23114fec510582aca9a11dd3f5f8392002f56",
"files": [
{
"path": "carta.txt",
"sha256": "03099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3",
"size": 13
},
{
"path": "docs/año 2026/acta.txt",
"sha256": "877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"size": 21
}
],
"head": "a4006d646174656b6579732d686561640101025820d83020f6577c7107d2acd42c3c87900cd9952e505740e137c246718d5ba00fe50582a5006963617274612e747874010d0200030d04582003099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3a50077646f63732f61c3b16f20323032362f616374612e7478740115020d031822045820877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"length": 32990,
"lines": [
"Firmado con la clave que guardaste como la clave de prueba.",
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>
2 days ago
"No acredita que se sellara antes de la fecha de apertura: el sello no dice su precisión."
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
],
"result": "ok",
"verdicts": [
"F3",
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>
2 days ago
"S5"
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
]
},
"ts": {
"area_len": 32768,
"lines": [
"Firmado con la clave que guardaste como la clave de prueba.",
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>
2 days ago
"No acredita que se sellara antes de la fecha de apertura: el sello no dice su precisión."
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
],
"verdicts": [
"F3",
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>
2 days ago
"S5"
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
]
}
},
{
"dkc": "444b43310300000000000079000001caa5006a646174656b657963617001010250300524f9468b5b9f3200eb13fb9cf57e037853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d483004006167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a733159565a3345334458395a737a704c6150506d4965396c6e766a623961646d316c39326e544a646a5a77796c467362424d726f4d774d764237537577656b500a467a576547735857753172666666586279686d6b7930662b5a6279657a6e5461794e71516c53566a73763337644b2b55506f7a37467849436567363376697a520a494e6d6f6e6f6a457a47712f3749787863466d65495958466a4c717a3751476657637a504347447a35576f0a2d2d2d20625873706a434f3577693075633165764d73344a6868412f6e59745666496e6431776e485a322f443250450afd09b2f5b1658fb5b5ade9650c93dd039de46ce7173a7b5a36fdb4561c5635b6c2266fbaa935e9a0ca4bdf6900f4cc4c2994c1fe57e5d4846bdf72bf21283567739a27cc49322ca7ba7296c32db326bdd090cbc52a3bff0c80f13f8c76332b9e8df9dcf4f8ca3eaa622d5161d1c8b480b72653e71a0c24da4d406fad79282f379f8ee5753057156167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139206e3448793957747a2b6837456178482f4343623473355444334a77664c6d454e7658724d46686d4b626b4d0a737833796a6f61376537635a4f39503959424537566c326a454c4975636d4e6759594e6d494149767641450a2d2d2d203176443477683274694c734f6143694a6565763549486771454a3073662f6d4230544673306d723072456f0a2b8e8963bff9c5b3151e669fc5fc408bbdf0dbc93a0d784c18a94cb1a25b87ed6f359ee15f6bfcf9261c335d8e75572db83799c2d2638b7fc38767fb248f2fc20b1e467bfc07acd67c2ee9d89d965664623e5654a3863db5598700ab9d778a1244f58db571985d214c7afa0ae580af7567e77dc57613ec71030df152a84d89bba8048217ee444ef96e78605df4e59d53b8ac1741b7ead2243e0b68ac5198b2de1f9a3cf06e9c6ace6da61558ca4e45589e525c0e4419e87bb497e4aa01e9b24f83f4299639ceb589277738023cac363c219203fa30e1667cccf62d45ba27db04cfc533d29c6fffc048dc3466622e7748aa35a4ebca55da1ce46e9d184a5c9b4c5d64248bb72c8cf2427934d58864e0d8501c95d19aec6529b0abaf9a3869e99661630bc757049626787524fab46886dc9a652f7e8c1919c1d1fa9d1284db2af45df56affa727b45fa4a6b8e4e282a70a3145467b5cd914b46d1e3ee9ac25a933cf4812f3c0ed62f9af1723f87596f71a34c69e2f14f7e50ae8be5d08d8d890476961a543b7f9a6be63d0e0729bedf27279faf6ce91987875ff5f2b48a1f93ef44b6d766da9d7fa1f2496ff7b563bb0537d757bfbe4c14e65b20c6102f14f3083238eeb2669e3856ca667a33e9ab179cf0d90b71d8e39b5bd1c5e85602de8a04e42dfbffafb57ff1ab9f68d286dcfae57e0ed24ce0165de9de51ff11d5dc22ff769033f09b3dbe21c6a6132ac70ba4adf0e0726d4b5fdbfd2c37f24fb1d96c127bdea82a79d7a8f5d3426a93790874b0d2c1235e50b1aa93c6d6df370a01c75e49042d5f55c5f383f5ce99178a7232b984722d225e95ccc91042941668ab1a4c5163f9c76f73700fdd49cd8f44f742ca6b98511ee5b02c8097fac2d120778a423d92315a57439569f8fccf07521b73ed1575ccff4a8ea6b51fbbc8a9507261f601c584c06e02aefe706139e7dbdfbc033c0083dfb1cf6dcbae9f27f75454f76eada16850a362bf8fc91fc2b3caddc19d9c9fc6c8d6d993a5193b645fdf799d4c78a6d362d4a44e073b5525dc163ab77d20edb4c376556ea0b2016a1b2f41cc293ed3bfe368eff054a7b0e7052ebfc6e20aa3c87bac45fb3b98a76c5267e0ee3cb638b77646b10cfbc860c72c4ec71ff4eb0cabf5805c45f481964b793ad807d757cdecb509686fd5dae1dba1f80053c694806db584a772068451fbace6dbf7ba035283da5ba32bb80c121e86bf983e4d61983998f0bf502316d5f0a30b6892aca4e2ecbb9b2fd173dd00478afead3b15cff73fc3430c045f5b0cc46748b54a0569e594bb6df3e5bac8f0ce4efc5198de2ccd73ee8668d62b5f972dd97e9bc16ed1d34c82c7ad4552ce4c0f4690fd6e7d4d205544b87d50063f000dd69015fd050df4a65855ebb7abf8c1818be03ecc6c83259912037e81db3e8a4a33a37f1db9f48cd17c96653a20122b662b3a2db26b1737ccb5f1c7ca4c6aa68faae82f630c8f0941c15165e24dad563f9f8a18d2a995f2b8aa62ed2fd89ac21a7d0cbb4f9215e4f8675a67e3538a23e081b0cfe01ee63bd71ef6bca189a7ff28ab5b014987408a37c5d1f14c3cade081ff9aac6d3e46e4f322ca4bbc240a5229ba4cb489758707764507f493667c4fddd39844f5f95d006f7dde1449fa67a878db68282435fdb4d378b2bfe03bfb7059e4c30e10f3757891f69ccc6cf028b2041823141a666618b8500e59980f2875a5e6fe925b3bd2b7ce923d21c5355aad385ceb28276c9cd654fd776e22ffe9078a4a9ca46cd7ce5271da49a556cbf2facc5832b7c4a
"name": "a seal alone",
"opened": {
"area_len": 32768,
"files": [
{
"path": "carta.txt",
"sha256": "03099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3",
"size": 13
},
{
"path": "docs/año 2026/acta.txt",
"sha256": "877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"size": 21
}
],
"head": "a4006d646174656b6579732d686561640101025820ceea1f65b9172aef3a2b665f999aec3f1f3b66e13a1802a25d7de4122263d7d40582a5006963617274612e747874010d0200030d04582003099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3a50077646f63732f61c3b16f20323032362f616374612e7478740115020d031822045820877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"length": 32990,
"lines": [
"Sin firma de autor.",
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>
2 days ago
"No acredita que se sellara antes de la fecha de apertura: el sello no dice su precisión."
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
],
"result": "ok",
"verdicts": [
"F0",
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>
2 days ago
"S5"
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
]
},
"ts": {
"area_len": 32768,
"lines": [
"Sin firma de autor.",
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>
2 days ago
"No acredita que se sellara antes de la fecha de apertura: el sello no dice su precisión."
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
],
"verdicts": [
"F0",
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>
2 days ago
"S5"
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
]
}
},
{
"dkc": "444b43310300000000000079000001caa5006a646174656b657963617001010250cca63e8f986c2ad32f0a83a60718b35d037853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d483004006167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6a614933622b48744263587777376a6d735a415146494f685456624f46704c6b532b6d774a4131763242595845576d54425236762b5759534f686b4232546c770a4536494c3048394c6f42576f56572f6b6c7341474f5a472f42736e37656774356970514955304f4d7347505a575949363036494b4e7753744c4b672b566132360a4f4552787459515a4538424968435552637872714678446864503866723175362f6c7232723962374e76730a2d2d2d2058706c497a516c6a57636d6f655779794666736f6c62346255757451464633313779392f7232436c6c68340abd58cd4f570ed5d5ffbe8b57caaf2bbff91867bca36fe3266137b2ec881335e57a14dbebb1c2feb5c5c0060c7db7d9508e5ea60482844e3403dcd35e97456b9dfe980aa93c9a0da07c8659662889142bfb90e2c34c1727e7727d8490de5a4c8a0ae9f50922d88bc73d924526a051801e34c5ad06a5e8239ea0c3f5def18f08921845da6c4cf1c56167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139202f47436c4332335058365854483639796f2f32517531453968784c465270736f48324875777052513646380a6d6a4b51723477356166626e3776515a43797a41345a4359795a5a565a784539516b63535039545a3431340a2d2d2d2039444e335547756b6f4a346a3933416b3970424e644e6674706e33534354554254787764493147766c67490a9d15021c4962cc237238b7490ddc3e149b7cb3c309dc3be6e09d367a84a4834189bdea83c7edafdfe45a68b5de6a9c19e38561fd72d5f092f605dad2dacdf58aba4437ed9591f3ad728c284ad940f5bfe8aeb92ffd3ec34bf0f8a77fe223272eb03d4a01e2c2ca9a191311c12842ceb887e8755f4c5e6014a7772c464f20e1d792a7e283a67256e7e5422ab73c7f4cf4de61f78a8a085360336c694e478574e873c263482241b7a32903728305bd0fdf60e8e32412ce61b1b6385a7ef073d8282a45e6fdcd9c09778d11eae9dacb5e2709901fa08f5be3da06496ae21a1f6069cfb931a3b6edbc13969a9b3e22c014d51ac252bcff30e798b0ef9e036a619231835e9b9788140722a78718f7c4fc9d17c3f5e262c5d85524f8839731496147c78199a40e1dc5e430f2883f00a7ce312e3efbf428dcf2c7f1b8f394a0299f791d508d2d9ee4d9b0eea5ea328693f702ffa1bab81fa825c09c7755e3ec755bde75f362c1aa3b95660cd39bfdbb41a426ae8289fce769c769ae1b9f8e19a286ffbbbd58f4babeaf1d397639d794d7f0a345c3cbf97a9ce401f799b8f8f3178ee99229335913c4861e328b3ad5d700c8a688673427d8c297e8602b364b8a36ad6b351b7399920d6fb321bc016d8c6488a8d97178698aff62f3f17b2f69839093f2044b9457ac6b1585afa0706b37210c524aa5fd300d92f2fda26ffaf6ce3cd231f3f36ea4ea82276f9441d5eb86f1e320094511d89c20674c8a9bfdfeb43669a790cc50089b3fa5a599089c29c6e37f9d0aa4e6b3edc2b35630d863638eabb29a5470f1d80e6a1f72a75f7e573d1859cd3ac0cbb4347fe768ba06599d1d25ff575c053ceafe5ed1f46244fc4ca4f416a4089dcc076b08579c6b0d2e66466da573aec4197b63498fb59b2e80bf28706c94a4464371d49421b3844f55625a0bee9c4db634d041347f78acf71d2323e61a842d63690ac32686f82e214636786ff24581abced12faf50c382d9aff6ebdefca5a486460bee5eaae14a851ac73c8685748ea76a8e747a7828a6bae98d0cbb085605531c6070cce225a272456e24133c06754f3a37d343452b35f4be849abe66913e09f6e47085d216fd1a2048dbaefb94a50bdfd4a69436d0ae94b9cef3a0d3e4dd7b7f1bf25e12f28f32aee2300eef5382871f8d1c041a370ca867041cfdb11982d9c95914fa925bf487fcf8f775ca6a6a6ee7ee5fc3d8c96a517ac59d95cd9d603514bd62ec8e0ae620930576ebd281416292c68fc39541168e880be9341682dccd062fa6bccf4a199888019b9f2b480ff8458c7724d1e462bc717b88d1fad846ac517d4bacefe2e16e34ea22f85959f5927e54fa340fec8723a7008e4a0658d7800d97575a09e22c9baed66416b5e16147567c653206b47a1ffbf217583865e1d31f1272123f6a01257a91f744af899171e9aa7d005ca00d9bad14805a01a2e373b12d9a4a142eaea314fd963a7c730e457f5670361ea061d98abb5b400b9cab4bcbd50737c97b8213945e419755539ad8f2872740fe12d9be624c2c22acdf83750fb74e888c58c241ac1a90bc8ef2b024309b33c0cb57af9b1c9c5376cb1f49a0e9c45a94d0bfb06c90b80cf34c98e3e8349146eacb131b112f9296a63110c7ff015733b3a8804170eb78cc403117deeb3f31afd7364bbb45c2de72519271db6b3e7c11707c58a24328aebf543d7f2d209de65543127c2d6e7f939bd4bbd501005c06fb78924da6171b8cf45d873e2a3508d4a6454b59ba6c49d7a85baad4f5af0bed386c55c02e4854eaf48b1985
"name": "alg 2, two signers, sealed",
"opened": {
"area_len": 32768,
"files": [
{
"path": "carta.txt",
"sha256": "03099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3",
"size": 13
},
{
"path": "docs/año 2026/acta.txt",
"sha256": "877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"size": 21
}
],
"head": "a4006d646174656b6579732d686561640101025820f68703933faf99a6abb5997beb8af8bc58f7aa93dd5a7110c445337c3a6b94310582a5006963617274612e747874010d0200030d04582003099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3a50077646f63732f61c3b16f20323032362f616374612e7478740115020d031822045820877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"length": 32990,
"lines": [
"Firmado con un certificado a nombre de «Ana Pérez», «Luis Martín». DateKeys no comprueba quién lo emitió: para eso, exporta la firma a un validador oficial.",
" «Ana Pérez» (emisor según su certificado: «Ana Pérez»), sellado por «Autoridad de sellado de prueba» el 2023-08-23T15:09:27Z, antes de la fecha de apertura.",
" «Luis Martín» (emisor según su certificado: «Luis Martín»), sellado por «Autoridad de sellado de prueba» el 2023-08-23T15:09:27Z, antes de la fecha de apertura.",
" DateKeys no comprueba quién emitió los sellos."
],
"result": "ok",
"verdicts": [
"F6",
"S0"
]
},
"ts": {
"area_len": 32768,
"lines": [
"Firmado con un certificado a nombre de «Ana Pérez», «Luis Martín». DateKeys no comprueba quién lo emitió: para eso, exporta la firma a un validador oficial.",
" «Ana Pérez» (emisor según su certificado: «Ana Pérez»), sellado por «Autoridad de sellado de prueba» el 2023-08-23T15:09:27Z, antes de la fecha de apertura.",
" «Luis Martín» (emisor según su certificado: «Luis Martín»), sellado por «Autoridad de sellado de prueba» el 2023-08-23T15:09:27Z, antes de la fecha de apertura.",
" DateKeys no comprueba quién emitió los sellos."
],
"verdicts": [
"F6",
"S0"
]
}
},
{
"dkc": "444b43310300000000000079000001caa5006a646174656b65796361700101025026814219a669f72fd5bb551e1e55eef2037853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d483004006167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6a48412b4f2f4c355873314b307573737578624a6158493958566774526773562b366f4537415575786f7174303973334138436a41304f3154706a797a2f30690a4638634f3857336336637136434265335132724954483470486a326d6467504c464d6f75654c5230695864504e546b61642b36465a584e51343650586652665a0a69757579696d3038784b455838764663676c41795862305333746470553162322b58312b336c7a7a71414d0a2d2d2d20664f5333356f434d412f6650317657456578796776697341634878556f30336e4f2f49706849336f5565380a1682ab94fc01740a5d05cd788eaa6687041bb34f77f602cbf5dac29d903ec025b3cf8371f00686326a753572148fd645683090b9f0254e48844d26b3352a1d3047a0ba4689480095d4fb0f92418d0d845aadd7ab25d2c02ba62f9b6ed496e74136716ac86b919330c1609e5d9e9553d5bfed552a11c56b61cb92b43120ba7249ba262929e926026167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139206b7a6d4444526e4f684e31436e626a796e33476c4b39714d56647158346d44594d536f7a3156545a4930490a4d34647348416230464e57776f6451385177686a763548794a4a476b2f6965436e4c7a6178697564612b6f0a2d2d2d204441354261503179532b414731645a7852672f69717155462b376b35703031447070344f72395069756d6f0a806c0246f97a7707a0caa04ddc3bcf7256d823f358396e6e47168c97fc5279e0179cb07f8731baeec44a5400853301d7f5414f888199b0afaed0bfe44dada55c36ece75e3e32aaa59ba8a5d9c850f160353a207d7bcd0fa207c9a386c5ec8e1ac2b245b4c4a54933e5903b6655f251374b58a0c31fc833e1224235a198d960de3297e8505cdc240c320e4577c9423a367384dea4a21f65fec14af39a4ab0c99d63ad595016b0386884a1c7b01df96f78707b5f23940b02670c7a1c7c89803602e20174ed58d83513ad92e231af07942573a7d2fb503c613dc7dd44be1efe119fa6b45eea8d87163d01c3acc555b7889f2a23a621fa2027ab0b55062b48acc3cbfef28717c0ae26cb68c78e7da0313e1841197e9da130c9bdb18cddd34dbf84611001487a3deac910ec7213d52db50c7c558627f233e1d6d074d4ddd84287ce0283221feb5c9fd61b7898c024f2b8e11fdb5f9d38c2661c46e040991ebfc7a5209c8b29f5614bf14ab7321bb3805304347ca210eaa50e4312d2edc426b9d40e77350a9e3d237b081b38beedb16c5e59d00ee599bc72fd1257bc15ec347e46c3d6110388ee8c8b9670d2a3de9a93366be1addbb833f8063b9b7cb53485c3f52b3895f8f63fb74c09551bc827e1363eab7ed0b13fb18b22fb661e7e2a5bb056a017cebc7bf8aeacf55f374e92c5587d715ac1a30446fdd51f39dfb87a0cc7b759cdebc95307d03f9cdaf1be2dfcb4dfc16c953c10ae3c380f4805df6cc1f2131a98780242897a25c730b30aeab6af63d3cd1a1d225d49cea72c8135c7291de5b88218b937b1eff60d26f6b37fac8ef3b9197d6e5f9a4d382fc05056b4328016720ba4dcf42a871d76b14f260511a2c61b271b45ace5c4fe4b02c41ee59d64b672687b6d69c95df08c3ef50dc796b2ad5b1eac582ba8a0ba7d63341e57d78afc56bd5c662b2c43a9591b868be3dc706f347974c8a895561e673408667786dc22566297a69252c4dd7b9baf1dc3c769d0a52ffa4804cc932995f6aaedcbdf84027c9e7b5560a790dbf6fecc1a722526e8e7463b7c0c16995f679b8573bd08a37430ca1b7a3d11e67db9c99f1f1475829c95c5d7d5598147ff30a07f26505f18d922e85d61c322f0ebfd4d2efbaf4af3e918ebc52897140317cd33064bb7ecb87a315700100290cdfe5658c6a6c728f8b72af3b40aa67bcc8d8c1bfb2f274656737d2857dfc3800e9027fbfc51b8a4d4cac3471832a82bb6d3a55a1fcd3f77bce15b0d748349cd374d5405a1b597cdad9ae3186df487b997fa5102ddda138035cd4ec0e6c14e1ff5976dbc04b57d4bdb846102547ff2826848997cbce111980f6e58e8a291743cf1bbc27612bf436120754292556deb4a94be66c028e21047e6dd62873c4f0150d0de15bf092d0d15c14b8117e519a56a743fbbdc5c63d47266786ab127c819659f3a775227a1c9dea52f28411a6bb7ae1c17d13a2592725f6431743558c1edbed05be4a5279ceaa6531235d2d1a33892c584dfc7866c0eea1de97a73e482cffc8afa94809a627cc5a3588c5de127eaeff47f7756f0731916b697a7548b93149d43080238ecb06b4b1d4fc07677060377d318a4bf7b3e99124075e655e3677d3926be45d1c35d0d297d1f5819e311e4de1a31a90deb5e0a23066f53de8221ddf1e751b9da46440826e877567ba554c1092bb277b9526abf9a942721d325825da500925548b0968a9321816e41f5e7d7e33e28c56fda66cdcded50c2e879b93758761f27a7de64e3fb0e96bbde1834a16f305f719e7f8763d9f3b11b
"name": "alg 2, a large area",
"opened": {
"area_len": 65536,
"files": [
{
"path": "carta.txt",
"sha256": "03099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3",
"size": 13
},
{
"path": "docs/año 2026/acta.txt",
"sha256": "877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"size": 21
}
],
"head": "a4006d646174656b6579732d68656164010102582055b0ba1965b989205d9a767a458f258bba6d38f8de8c94d8bb7a1fcbffb82f700582a5006963617274612e747874010d0200030d04582003099b51191207a3859384cf7ffb2c715e325cec6c019c6e735c22e1ca69e8a3a50077646f63732f61c3b16f20323032362f616374612e7478740115020d031822045820877c16d3221cc9231c966dd50d0976c93d5de695d3e3d19ec9c23ea68f29806a",
"length": 65758,
"lines": [
"Firmado con un certificado a nombre de «Ana Pérez». DateKeys no comprueba quién lo emitió: para eso, exporta la firma a un validador oficial.",
" «Ana Pérez» (emisor según su certificado: «Ana Pérez»), sellado por «Autoridad de sellado de prueba» el 2023-08-23T15:09:27Z, antes de la fecha de apertura.",
" DateKeys no comprueba quién emitió los sellos."
],
"result": "ok",
"verdicts": [
"F6",
"S0"
]
},
"ts": {
"area_len": 65536,
"lines": [
"Firmado con un certificado a nombre de «Ana Pérez». DateKeys no comprueba quién lo emitió: para eso, exporta la firma a un validador oficial.",
" «Ana Pérez» (emisor según su certificado: «Ana Pérez»), sellado por «Autoridad de sellado de prueba» el 2023-08-23T15:09:27Z, antes de la fecha de apertura.",
" DateKeys no comprueba quién emitió los sellos."
],
"verdicts": [
"F6",
"S0"
]
}
}
],
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>
2 days ago
"source": "4f7885495bd6ea666cb444519090fb5f3ea46752"
The writer signs and seals: the hooks of capsule.EncryptFiles of Go encryptFiles gains authorKey (alg 1, an AuthorSigner such as AuthorKey), cmsSigner (alg 2, a CMS signature with certificates), sealer (seal_type 2, an RFC 3161 token) and largeArea, as EncryptOptions of Go at spec-v0.12: the same checks in the same order with the same texts, the signature and the seal made with the final control and head and before anything is written, and the security area evaluated by the reader of this library in the context of the capsule before it is written, as Go's security does. The hooks may be asynchronous. The area grows to 64 KiB only when what was signed does not fit and largeArea allows it, and the larger capsule counts in the limit of memory. security.ts encodes the area with its signature and seal, and securitycms.ts encodes SIGNERS. scripts/signing-go-vectors_test.go, run as a test in an export of datekeys-go at spec-v0.12, writes testing/signing-vectors.json: with the draws of crypto/rand of Go and the signatures and tokens of its hooks, encryptFiles writes the eight signed and sealed capsules of Go byte for byte, asks the hooks over the same messages, and fails with the text of Go in the other 15 recipes; and Go opens the five capsules that scripts/signing-ts-samples.mjs writes with this library, its own random values and certificates, with the same verdicts and lines. check-build.mjs fails when a page loads the author keys with the page, or when /inspect can load them at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 days ago
}

Powered by TurnKey Linux.