Tenuo Protocol Test Vectors
Version: 1.0
Generated: 2024-01-01 (deterministic timestamps for reproducibility)
Specification: protocol-spec-v1.md
Overview
All test vectors are byte-exact and reproducible. Implementations MUST:
- Reproduce the exact CBOR payload bytes
- Verify signatures match exactly
- Verify chain linkage via
parent_hash = SHA256(parent.payload)
Key Material
Keys are derived deterministically from 32-byte seeds using Ed25519.
| Role | Seed | Public Key |
|---|---|---|
| Control Plane | 0101...01 (32×0x01) |
8a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b40f6f5c |
| Orchestrator | 0202...02 (32×0x02) |
8139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b8fc9b394 |
| Worker | 0303...03 (32×0x03) |
ed4928c628d1c2c6eae90338905995612959273a5c63f93636c14614ac8737d1 |
| Worker2 | 0404...04 (32×0x04) |
ca93ac1705187071d67b83c7ff0efe8108e8ec4530575d7726879333dbdabe7c |
Full Seeds:
Control Plane: 0101010101010101010101010101010101010101010101010101010101010101
Orchestrator: 0202020202020202020202020202020202020202020202020202020202020202
Worker: 0303030303030303030303030303030303030303030303030303030303030303
Worker2: 0404040404040404040404040404040404040404040404040404040404040404
Timestamps
| Name | Unix (seconds) | ISO 8601 |
|---|---|---|
issued_at |
1704067200 |
2024-01-01T00:00:00Z |
expires_at |
1704070800 |
2024-01-01T01:00:00Z |
A.1 Minimal Valid Execution Warrant
Root warrant with read_file tool and Wildcard constraint.
A.1
| Field | Value |
|---|---|
| ID | tnu_wrt_019471f8000070008000000000000001 |
| Type | Execution |
| Depth | 0 |
| Max Depth | 3 |
| Issued At | 1704067200 |
| Expires At | 1704070800 |
| Holder | 8139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b8fc9b394 |
| Issuer | 8a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b40f6f5c |
Payload CBOR (156 bytes):
aa00010150019471f80000700080000000000000010269657865637574696f6e
03a169726561645f66696c65a16b636f6e73747261696e7473a1647061746882
10f604820158208139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25d
f60f5b8fc9b39405820158208a88e3dd7409f195fd52db2d3cba5d72ca6709bf
1d94121bf3748801b40f6f5c061a65920080071a65920e9008031200
Signature (64 bytes):
eb112ef8cc34cace169bc0f52889e07096c0149980d1b2ed7e7b5c97a4143e8f599c47dbc21172320de707635c17d2d05447635d38a013698b8e02a5b7828200
Complete SignedWarrant Envelope (228 bytes):
83 # array(3)
01 # envelope_version = 1
58 9c # payload (156 bytes)
aa00010150019471f800007000800000...
82 # signature array(2)
01 # algorithm = Ed25519
58 40 # signature bytes (64)
eb112ef8cc34cace169bc0f52889e070...
Full Envelope CBOR (hex):
8301589caa00010150019471f800007000800000000000000102696578656375
74696f6e03a169726561645f66696c65a16b636f6e73747261696e7473a16470
6174688210f604820158208139770ea87d175f56a35466c34c7ecccb8d8a91b4
ee37a25df60f5b8fc9b39405820158208a88e3dd7409f195fd52db2d3cba5d72
ca6709bf1d94121bf3748801b40f6f5c061a65920080071a65920e9008031200
82015840eb112ef8cc34cace169bc0f52889e07096c0149980d1b2ed7e7b5c97
a4143e8f599c47dbc21172320de707635c17d2d05447635d38a013698b8e02a5
b7828200
Base64 (URL-safe, no padding):
gwFYnKoAAQFQAZRx-AAAcACAAAAAAAAAAQJpZXhlY3V0aW9uA6FpcmVhZF9maWxloWtjb25zdHJh
aW50c6FkcGF0aIIQ9gSCAVgggTl3Dqh9F19Wo1Rmw0x-zMuNipG07jeiXfYPW4_Js5QFggFYIIqI
4910CfGV_VLbLTy6XXLKZwm_HZQSG_N0iAG0D29cBhplkgCABxplkg6QCAMSAIIBWEDrES74zDTK
zhabwPUoieBwlsAUmYDRsu1-e1yXpBQ-j1mcR9vCEXIyDecHY1wX0tBUR2NdOKATaYuOAqW3goIA
A.2 Minimal Issuer Warrant
Issuer warrant that can grant read_file and write_file capabilities.
A.2
| Field | Value |
|---|---|
| ID | tnu_wrt_019471f8000070008000000000000002 |
| Type | Issuer |
| Depth | 0 |
| Max Depth | 5 |
| Issued At | 1704067200 |
| Expires At | 1704070800 |
| Holder | 8139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b8fc9b394 |
| Issuer | 8a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b40f6f5c |
Payload CBOR (146 bytes):
ac00010150019471f8000070008000000000000002026669737375657203a004
820158208139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b
8fc9b39405820158208a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d9412
1bf3748801b40f6f5c061a65920080071a65920e9008050b8269726561645f66
696c656a77726974655f66696c650d031200
Signature (64 bytes):
641e6ceab4abc76ff9bd5967d09808fe0a8efc65b7c918af11acfb118c94158747f8b02f0459dacb052ce5f1eda5d678e2dff2ced1b948d6123deeb48e25500f
A.3 Valid 3-Level Chain
Demonstrates progressive attenuation:
Level 0: Pattern("/data/*")
-> Level 1: Pattern("/data/reports/*")
-> Level 2: Exact("/data/reports/q3.pdf")
Level 0 (Root)
Level 0
| Field | Value |
|---|---|
| ID | tnu_wrt_019471f8000070008000000000000010 |
| Type | Execution |
| Depth | 0 |
| Max Depth | 3 |
| Issued At | 1704067200 |
| Expires At | 1704070800 |
| Holder | 8139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b8fc9b394 |
| Issuer | 8a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b40f6f5c |
Payload CBOR (172 bytes):
aa00010150019471f80000700080000000000000100269657865637574696f6e
03a169726561645f66696c65a16b636f6e73747261696e7473a1647061746882
02a1677061747465726e672f646174612f2a04820158208139770ea87d175f56
a35466c34c7ecccb8d8a91b4ee37a25df60f5b8fc9b39405820158208a88e3dd
7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b40f6f5c061a6592
0080071a65920e9008031200
Signature (64 bytes):
941d60f6611abb8e079360160e06135fcf8de72d0fec056fdfc586b342f8a35c2affb7c727011da5707462a16b970ad60fdc34225accd9cc0bc44f271914e50d
Level 1 (Attenuated)
Invariants:
issuer= Level 0’sholder(Orchestrator)depth= 1parent_hash= SHA256(Level 0 payload)
Level 1
| Field | Value |
|---|---|
| ID | tnu_wrt_019471f8000070008000000000000011 |
| Type | Execution |
| Depth | 1 |
| Max Depth | 3 |
| Issued At | 1704067200 |
| Expires At | 1704070800 |
| Holder | ed4928c628d1c2c6eae90338905995612959273a5c63f93636c14614ac8737d1 |
| Issuer | 8139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b8fc9b394 |
| Parent Hash | 41ccd6219b0593c02563e525dc34fbd6e03682d760c9a87938d6aa8494d5c5fa |
Payload CBOR (246 bytes):
ab00010150019471f80000700080000000000000110269657865637574696f6e
03a169726561645f66696c65a16b636f6e73747261696e7473a1647061746882
02a1677061747465726e6f2f646174612f7265706f7274732f2a0482015820ed
4928c628d1c2c6eae90338905995612959273a5c63f93636c14614ac8737d105
820158208139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b
8fc9b394061a65920080071a65920e900803099820184118cc18d61821189b05
189318c01825186318e5182518dc183418fb18d618e01836188218d7186018c9
18a81879183818d618aa1884189418d518c518fa1201
Signature (64 bytes):
e54c8ae27e4d852656e0d596556d2011953630663a4c93a9c7ee2407b89a2e71d82bec137f09e1b7e4e4768bf8f19d0df235e22762650e7bd588c3ead8d1790c
Level 2 (Most Restricted)
Invariants:
issuer= Level 1’sholder(Worker)depth= 2parent_hash= SHA256(Level 1 payload)
Level 2
| Field | Value |
|---|---|
| ID | tnu_wrt_019471f8000070008000000000000012 |
| Type | Execution |
| Depth | 2 |
| Max Depth | 3 |
| Issued At | 1704067200 |
| Expires At | 1704070800 |
| Holder | ca93ac1705187071d67b83c7ff0efe8108e8ec4530575d7726879333dbdabe7c |
| Issuer | ed4928c628d1c2c6eae90338905995612959273a5c63f93636c14614ac8737d1 |
| Parent Hash | 2bb296e57db02ce75712dfd41a7b9fa52d33357c086235b5ad8f75904f6c18f9 |
Payload CBOR (248 bytes):
ab00010150019471f80000700080000000000000120269657865637574696f6e
03a169726561645f66696c65a16b636f6e73747261696e7473a1647061746882
01a16576616c7565742f646174612f7265706f7274732f71332e706466048201
5820ca93ac1705187071d67b83c7ff0efe8108e8ec4530575d7726879333dbda
be7c0582015820ed4928c628d1c2c6eae90338905995612959273a5c63f93636
c14614ac8737d1061a65920080071a65920e900803099820182b18b2189618e5
187d18b0182c18e718571218df18d4181a187b189f18a5182d18331835187c08
1862183518b518ad188f18751890184f186c181818f91202
Signature (64 bytes):
3df67259e4190b93095ad146a5b0b6d2c45e8d9115031628f75b76ce17dab1aa37a55509ebc16963ff7b508c492402e0e44f0a455900741efde312cb19ae850f
A.4 Invalid Chain (I1 Violation)
Scenario: Attacker (Worker) signs attenuation of a warrant where they are NOT the holder.
Using Level 0 from A.3:
| Field | Level 0 | Invalid Child |
|---|---|---|
| holder | Orchestrator | Worker2 |
| issuer | Control Plane | Worker (WRONG) |
Invalid Child Payload CBOR (238 bytes):
ab00010150019471f80000700080000000000000400269657865637574696f6e
03a169726561645f66696c65a16b636f6e73747261696e7473a1647061746882
02a1677061747465726e672f646174612f2a0482015820ca93ac1705187071d6
7b83c7ff0efe8108e8ec4530575d7726879333dbdabe7c0582015820ed4928c6
28d1c2c6eae90338905995612959273a5c63f93636c14614ac8737d1061a6592
0080071a65920e900803099820184118cc18d61821189b05189318c018251863
18e5182518dc183418fb18d618e01836188218d7186018c918a81879183818d6
18aa1884189418d518c518fa1201
Invalid Child Signature (64 bytes):
8cd9457fec06791ab587aea5cf3b19437630e60d7adbe8cfb56bfce692ea2874bb9f3162645407a6b58316e2eb2d29ceb651b4f2582e083e45010a11e5774909
Expected Error: child.issuer (ed4928c628d1c2c6) != parent.holder (8139770ea87d175f)
Verifiers MUST reject this chain even though signatures are valid.
A.5 Expired Warrant
Warrant with 1-second TTL.
A.5
| Field | Value |
|---|---|
| ID | tnu_wrt_019471f8000070008000000000000050 |
| Type | Execution |
| Depth | 0 |
| Max Depth | 3 |
| Issued At | 1704067200 |
| Expires At | 1704067201 |
| Holder | 8139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b8fc9b394 |
| Issuer | 8a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b40f6f5c |
Payload CBOR (156 bytes):
aa00010150019471f80000700080000000000000500269657865637574696f6e
03a169726561645f66696c65a16b636f6e73747261696e7473a1647061746882
10f604820158208139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25d
f60f5b8fc9b39405820158208a88e3dd7409f195fd52db2d3cba5d72ca6709bf
1d94121bf3748801b40f6f5c061a65920080071a6592008108031200
Signature (64 bytes):
c270f5d1468a09c84ca2de9040013c759eb10586b9373baf8486ad34be643be98a5b97f08fddc66f8add76e20989b1b8620c113ebcb793e27d793f1ae152ff0a
Expected: Reject with warrant_expired when now > 1704067201
A.6 Proof-of-Possession
A.6
| Field | Value |
|---|---|
| ID | tnu_wrt_019471f8000070008000000000000060 |
| Type | Execution |
| Depth | 0 |
| Max Depth | 1 |
| Issued At | 1704067200 |
| Expires At | 1704070800 |
| Holder | ed4928c628d1c2c6eae90338905995612959273a5c63f93636c14614ac8737d1 |
| Issuer | 8a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b40f6f5c |
Payload CBOR (179 bytes):
aa00010150019471f80000700080000000000000600269657865637574696f6e
03a169726561645f66696c65a16b636f6e73747261696e7473a1647061746882
01a16576616c7565702f646174612f7265706f72742e7064660482015820ed49
28c628d1c2c6eae90338905995612959273a5c63f93636c14614ac8737d10582
0158208a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b4
0f6f5c061a65920080071a65920e9008011200
Signature (64 bytes):
af7ef8bd6527842e87d8db91c3614e93bc1ecabb58e99f87d11511bfcbce0605fa488b02388830720efe618f35470595e04176714cd4d15a294c9971789c2209
PoP Challenge:
| Component | Value |
|---|---|
| Domain Separator | b"tenuo-pop-v1" |
| Warrant ID | tnu_wrt_019471f8000070008000000000000060 |
| Tool | read_file |
| Args | {"path": "/data/report.pdf"} |
| Timestamp Window | 1704067200 |
PoP Challenge CBOR (82 bytes):
847828746e755f7772745f303139343731663830303030373030303830303030
303030303030303030363069726561645f66696c6581826470617468702f6461
74612f7265706f72742e7064661a65920080
PoP Preimage (context || challenge):
74656e756f2d706f702d7631 # "tenuo-pop-v1"
847828746e755f7772745f303139343731663830303030373030303830303030
303030303030303030363069726561645f66696c6581826470617468702f6461
74612f7265706f72742e7064661a65920080
PoP Signature (64 bytes):
84f11618ec5b7234287e3fc1dbb6f8c18de9aab1ad60d8bc3e26ba293814a0620cae3be2c96baf7698ef959105231d2b4eee57fa247a56c11170d100e66d6f0a
Signing Key: Worker private key (seed 0303...03)
Verification: Signature MUST verify under Worker’s public key: ed4928c628d1c2c6eae90338905995612959273a5c63f93636c14614ac8737d1
Implementation Notes
CBOR Wire Format
Payload fields use integer keys:
| Key | Field |
|---|---|
| 0 | version |
| 1 | id |
| 2 | warrant_type |
| 3 | tools |
| 4 | holder |
| 5 | issuer |
| 6 | issued_at |
| 7 | expires_at |
| 8 | max_depth |
| 9 | parent_hash (optional) |
| 10 | extensions (optional) |
| 11 | issuable_tools (optional) |
| 12 | (reserved) |
| 13 | max_issue_depth (optional) |
| 14 | constraint_bounds (optional) |
| 15 | required_approvers (optional) |
| 16 | min_approvals (optional) |
| 17 | clearance (optional) |
| 18 | depth |
Signature Message
The signature is computed over a domain-separated message:
message = b"tenuo-warrant-v1" || envelope_version || payload_cbor_bytes
signature = Ed25519.sign(issuer_key, message)
Where envelope_version is 0x01 for v1 warrants.
Constraint Type IDs
| Type | ID |
|---|---|
| Exact | 1 |
| Pattern | 2 |
| Wildcard | 16 |
A.7 Edge Cases
A.7.1 Terminal Warrant (depth = max_depth)
Scenario: Warrant at maximum delegation depth cannot be further attenuated.
| Field | Value |
|---|---|
| depth | 3 |
| max_depth | 3 |
Expected: Any attempt to attenuate this warrant MUST fail with depth_exceeded.
A.7.2 Unknown Constraint Type
Scenario: Constraint with unrecognized type ID (experimental range).
CBOR bytes:
82 # array(2)
18 80 # unsigned(128) - type ID in experimental range
a1 # map(1)
66 # text(6)
637573746f6d # "custom"
64 # text(4)
64617461 # "data"
Hex: 821880a166637573746f6d6464617461
Expected: Verifier deserializes as Constraint::Unknown { type_id: 128, payload: ... }, authorization MUST fail (fail closed).
A.7.3 Invalid CBOR: Duplicate Map Keys
Scenario: Malformed CBOR payload with duplicate keys.
# Map with duplicate key 0
a2 00 01 00 02
# {0: 1, 0: 2}
Expected: Senders MUST NOT produce. Verifier behavior is undefined per RFC 8949 §5.6. This is NOT a normative test case.
A.7.4 SRL Revocation
Scenario: Warrant ID appears in Signed Revocation List.
| warrant.id | SRL.revoked_ids |
|---|---|
019471f8-0000-7000-8000-000000000001 |
[..., "019471f8-0000-7000-8000-000000000001", ...] |
Expected: Authorization MUST fail with warrant_revoked.
References
- [RFC 8032] Josefsson, S., Liusvaara, I., “Edwards-Curve Digital Signature Algorithm (EdDSA)”, January 2017. https://datatracker.ietf.org/doc/html/rfc8032
- [RFC 8949] Bormann, C., Hoffman, P., “Concise Binary Object Representation (CBOR)”, December 2020. https://datatracker.ietf.org/doc/html/rfc8949
- [protocol-spec-v1.md] Tenuo Protocol Specification