Format 3, step 6b: the nine fixtures of format 3
The fixtures of spec 67 for format 3, each with its record, its BODY,
its inspect output and, for time_and_key, its .dkk:
- format3_single, format3_tree (five files in three folders, one over
two STREAM chunks, one without mtime, a comment and a declared
author), format3_comment_only (no files; a TAB in the comment),
format3_bloque256 and format3_time_and_key_portable, written with
EncryptFiles;
- format3_area_1024, format3_security_v2 (verdict X),
format3_signature_unsupported (an author-signature of alg 1 with a
random key of 32 bytes and a random signature of 64: F1) and
format3_seal_unsupported (that and a seal of seal_type 1: F1 and S1),
which only a generator of test vectors writes (62.1 rule 13), built
with testkit.Build.
The record of a format 3 fixture adds the area, SECURITY_CBOR,
HEAD_CBOR, the salt, the comment, the declared author, the head
extensions, the offset of CONTENT in BODY, each file with its layout,
SHA-256 and mtime, and the verdicts with their lines; its plaintext
file is BODY. The generator writes, then recovers every value by
opening layer by layer for the three formats alike, and refreshes the
records of format 3 through a Sink.
Tests: the conformance test checks BODY, the head, security and every
file, and opens through a MemorySink; the .dkk tests take the .dkk of
formats 2 and 3 too (spec 68); the CLI decrypts five of the fixtures
into folders; the control fuzz target decodes with the three schema
versions. The differential corpus gains two bases, format3_single and
format3_time_and_key_portable, one per policy: 5110 cases, the earlier
ones unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 week ago
|
|
|
{
|
|
|
|
|
"description": "format 3 time_and_key capsule with one credential, a portable .dkk, and 15 dummies",
|
|
|
|
|
"spec": "0.12",
|
Format 3, step 6b: the nine fixtures of format 3
The fixtures of spec 67 for format 3, each with its record, its BODY,
its inspect output and, for time_and_key, its .dkk:
- format3_single, format3_tree (five files in three folders, one over
two STREAM chunks, one without mtime, a comment and a declared
author), format3_comment_only (no files; a TAB in the comment),
format3_bloque256 and format3_time_and_key_portable, written with
EncryptFiles;
- format3_area_1024, format3_security_v2 (verdict X),
format3_signature_unsupported (an author-signature of alg 1 with a
random key of 32 bytes and a random signature of 64: F1) and
format3_seal_unsupported (that and a seal of seal_type 1: F1 and S1),
which only a generator of test vectors writes (62.1 rule 13), built
with testkit.Build.
The record of a format 3 fixture adds the area, SECURITY_CBOR,
HEAD_CBOR, the salt, the comment, the declared author, the head
extensions, the offset of CONTENT in BODY, each file with its layout,
SHA-256 and mtime, and the verdicts with their lines; its plaintext
file is BODY. The generator writes, then recovers every value by
opening layer by layer for the three formats alike, and refreshes the
records of format 3 through a Sink.
Tests: the conformance test checks BODY, the head, security and every
file, and opens through a MemorySink; the .dkk tests take the .dkk of
formats 2 and 3 too (spec 68); the CLI decrypts five of the fixtures
into folders; the control fuzz target decodes with the three schema
versions. The differential corpus gains two bases, format3_single and
format3_time_and_key_portable, one per policy: 5110 cases, the earlier
ones unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 week ago
|
|
|
"format": 3,
|
|
|
|
|
"file": "format3_time_and_key_portable.dkc",
|
|
|
|
|
"sha256": "680d29962e575689a31543df28433dae7737abd9a793e9cae92ef40920d09636",
|
|
|
|
|
"release": {
|
|
|
|
|
"round": 1000,
|
|
|
|
|
"signature": "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39"
|
|
|
|
|
},
|
|
|
|
|
"prelude": "444b4331030000000000007900000850",
|
|
|
|
|
"public_header": "a5006a646174656b65796361700101025029737cb54ad5310734ecf20720c2d317037853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d48300401",
|
|
|
|
|
"datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",
|
|
|
|
|
"capsule_id": "29737cb54ad5310734ecf20720c2d317",
|
|
|
|
|
"access_policy": "time_and_key",
|
|
|
|
|
"structure": "time_and_key",
|
|
|
|
|
"unlock_at": "2023-08-23T15:59:24Z",
|
|
|
|
|
"header_binding": "b7519c210ffd04c4a8c9b1db2e2986909218de3194b9d4492ebdb103ff30f194",
|
|
|
|
|
"outer_stanzas": [
|
|
|
|
|
{
|
|
|
|
|
"type": "tlock",
|
|
|
|
|
"args": [
|
|
|
|
|
"1000",
|
|
|
|
|
"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"payload_stanzas": [
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"20B1R3GsDu+TbnxCCAxJHqNxhwphQSZ1Y/AUl0Z3yU8"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"inner_stanzas": [
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"FB3+4jY2M1GAqglbnOR48eAy+smdyP2UkpFv1kAlZkw"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"rDLS+HBsqeo0XcQl8itevBCak4PX8OD2gAr7uR6ylTo"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"h4Hut6TonAcLjG6GGMG0yMt/EwP0+OY4ae9YGR8lxjk"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"NnmlK4y1kkH+gXTfWhv98SBA302QGe7gDftyV8vTdng"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"fZ4XvPz7OxR6CwD72H5uGSAhxAe9HcRsdrrDhqECizs"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"+1M0oE4wwC5G+Vtz3SWpNLFrGzfrnfE1zaTC/OPRhGo"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"DQTkhZXnH+HcAWFXgp4RAQhPcn6ifhDl0s1igdGtYVM"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"e6Xx3M2tFQgOVHEWR9FKjmLu4yJV7DYhW+xPNtFr4zE"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"Cifig2MYLkukZyMYDRPIG8cYpZ74G1gO6xRFqxJNRhU"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"u5Nc4g1T5DEhvoRYs6lth7D9EKcaM+aSYCTeNBfODWg"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"5QXZpD5UYzJ/DAnrRu/WJWHQn9K1QKzbMpXY6TG5hCI"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"HBPPSYMOpxekONKE5QQuU0vIVqWO+UZioqCJY+C8Rhc"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"dilBP/O1pASeDYfMvSktM26vGCuTzW00C12sLB1tgGA"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"3MNj3kw3dWC8Q3/57f1OfbMyXzOLcrcw3Iivgdh8UQE"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"qBQ8sPei+jukc8zZrhlJwbV5UzZNq6GwlASWCx4GCTo"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "X25519",
|
|
|
|
|
"args": [
|
|
|
|
|
"ais9p7sRZGOp+b7riMN0jA1Zwadjk7M99ynjZoIK72s"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"access_key_stanza": 13,
|
|
|
|
|
"access_key_file": "format3_time_and_key_portable.dkk",
|
|
|
|
|
"control_cbor": "a60070646174656b6579732d636f6e74726f6c0103025820b7519c210ffd04c4a8c9b1db2e2986909218de3194b9d4492ebdb103ff30f19403582004d52390693dcd4b72881f7faf77891850b0c33c0201aca2798e75de865ca85f064800000000000002b00702",
|
|
|
|
|
"payload_identity": "04d52390693dcd4b72881f7faf77891850b0c33c0201aca2798e75de865ca85f",
|
|
|
|
|
"payload_length": 688,
|
|
|
|
|
"padding": 2,
|
|
|
|
|
"padded_length": 768,
|
|
|
|
|
"plaintext_file": "format3_time_and_key_portable.plaintext",
|
|
|
|
|
"plaintext_sha256": "e6684cf607c102bfa4d6977742d5a7520b0e09483282181bd6d8f5f4ba5f7726",
|
|
|
|
|
"area_len": 512,
|
|
|
|
|
"security_cbor": "a20071646174656b6579732d73656375726974790101",
|
|
|
|
|
"head_cbor": "a4006d646174656b6579732d686561640101025820bbdb331b4b6295558cc987ddeab7849aa89d70c2c7608f56fce71e238a37daf50581a6006b7365637265746f2e74787401182e020003182e045820937492203d207d6fe36161b8696bf1f05b8b4cc56d855c44853f4b76aad3a05b051a6abcf9c0",
|
|
|
|
|
"salt": "bbdb331b4b6295558cc987ddeab7849aa89d70c2c7608f56fce71e238a37daf5",
|
|
|
|
|
"content_offset": 642,
|
|
|
|
|
"files": [
|
|
|
|
|
{
|
|
|
|
|
"path": "secreto.txt",
|
|
|
|
|
"size": 46,
|
|
|
|
|
"start": 0,
|
|
|
|
|
"end": 46,
|
|
|
|
|
"sha256": "937492203d207d6fe36161b8696bf1f05b8b4cc56d855c44853f4b76aad3a05b",
|
|
|
|
|
"mtime": 1790769600
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"verdicts": {
|
|
|
|
|
"signature": "F0",
|
|
|
|
|
"seal": "S0",
|
|
|
|
|
"lines": [
|
|
|
|
|
"Sin firma de autor."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"stages": [
|
|
|
|
|
{
|
|
|
|
|
"step": 1,
|
|
|
|
|
"name": "parse DKC1",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 2,
|
|
|
|
|
"name": "prelude",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 3,
|
|
|
|
|
"name": "public header",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 4,
|
|
|
|
|
"name": "header validation",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 5,
|
|
|
|
|
"name": "sealed control structure",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 6,
|
|
|
|
|
"name": "payload structure",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 7,
|
|
|
|
|
"name": "condition",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 8,
|
|
|
|
|
"name": "tlock stanza",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 9,
|
|
|
|
|
"name": "access credential",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 9,
|
|
|
|
|
"name": "release",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 10,
|
|
|
|
|
"name": "release verification",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 11,
|
|
|
|
|
"name": "open sealed control",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 12,
|
|
|
|
|
"name": "policy structure",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 13,
|
|
|
|
|
"name": "open access layer",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 14,
|
|
|
|
|
"name": "control",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 15,
|
|
|
|
|
"name": "header binding",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 16,
|
|
|
|
|
"name": "payload identity",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 17,
|
|
|
|
|
"name": "open payload",
|
|
|
|
|
"ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"step": 18,
|
|
|
|
|
"name": "commit",
|
|
|
|
|
"ok": true
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|