@@ -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
2628Primary 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:
56584 . failed old/new root dual-threshold rotation;
57595 . valid role-key rotation and rollback-state reset;
58606 . 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;
60628 . snapshot mix-and-match bytes;
61639 . timestamp/snapshot version disagreement;
626410 . timestamp rollback;
636511 . expired timestamp/freeze signal;
64- 12 . noncanonical expiry rejection;
66+ 12 . noncanonical expiry rejection, including offset and fractional-second encodings ;
656713 . target digest substitution;
666814 . targets metadata rollback;
676915 . 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