Skip to content

Commit d270b8e

Browse files
docs(tuf): align POUF and rotation wording with v1.0.35
1 parent 7ea7e26 commit d270b8e

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

spike/tuf-offline-metadata/README.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ It is based on TUF Specification v1.0.35, including:
2020
- rollback/freeze checks;
2121
- snapshot and targets version/hash/length binding;
2222
- target path, length and SHA-256 binding;
23-
- recovery from timestamp/snapshot fast-forward state after authorized key rotation;
24-
- preservation of separately trusted targets-version rollback state during that recovery.
23+
- recovery from trusted timestamp/snapshot fast-forward state after authorized key
24+
rotation;
25+
- deletion of fast-forwarded targets versions learned only from the discarded
26+
snapshot while retaining the version of actually accepted targets metadata.
2527

2628
Primary specification: <https://theupdateframework.github.io/specification/v1.0.35/>
2729

@@ -32,7 +34,7 @@ The spike pins a deliberately narrow project profile:
3234
- TUF `spec_version`: `1.0.35`;
3335
- metadata and key IDs: deterministic JSON with safe integers and UTF-16 key order;
3436
- canonical JSON depth/node limits and cycle rejection;
35-
- canonical UTC expiry timestamps;
37+
- expiry timestamps in exact `YYYY-MM-DDTHH:MM:SSZ` UTC form;
3638
- signature scheme: raw-public-key Ed25519;
3739
- digest: SHA-256;
3840
- canonical full-metadata bytes for length/hash descriptors;
@@ -56,12 +58,12 @@ The TUF test suite contains **20 deterministic tests** covering:
5658
4. failed old/new root dual-threshold rotation;
5759
5. valid role-key rotation and rollback-state reset;
5860
6. snapshot-only key rotation resetting timestamp/snapshot fast-forward state;
59-
7. preservation of separately trusted targets rollback state across key rotation;
61+
7. preservation of actually accepted targets rollback state across key rotation;
6062
8. snapshot mix-and-match bytes;
6163
9. timestamp/snapshot version disagreement;
6264
10. timestamp rollback;
6365
11. expired timestamp/freeze signal;
64-
12. noncanonical expiry rejection;
66+
12. noncanonical expiry rejection, including offset and fractional-second encodings;
6567
13. target digest substitution;
6668
14. targets metadata rollback;
6769
15. validation of every signed target path;
@@ -83,6 +85,7 @@ no reusable private key material is stored.
8385
## Explicitly not implemented
8486

8587
- raw JSON parsing or duplicate-key detection;
88+
- complete schema validation and a final application-ID grammar;
8689
- delegated targets roles and path traversal through delegation graphs;
8790
- repository/mirror networking and consistent-snapshot filenames;
8891
- target streaming from an untrusted source;

0 commit comments

Comments
 (0)