Skip to content

Commit 40b590a

Browse files
committed
Replace strict JSON requirement with a flexible requirement. Clarify that file extensions may change if a different data format is used.
1 parent ad0f82b commit 40b590a

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

tuf-spec.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -411,34 +411,36 @@ repo](https://github.com/theupdateframework/specification/issues).
411411
+ **3.1.2 Metadata files**
412412

413413
The filenames and directory structure of repository metadata are strictly
414-
defined. The following are the metadata files of top-level roles relative
414+
defined. All metadata filenames will have an extension based on the
415+
metaformat, for example json metadata files would have an EXT of json.
416+
The following are the metadata files of top-level roles relative
415417
to the base URL of metadata available from a given repository mirror.
416418

417-
/root.json
419+
/root.EXT
418420

419421
Signed by the root keys; specifies trusted keys for the other
420422
top-level roles.
421423

422-
/snapshot.json
424+
/snapshot.EXT
423425

424426
Signed by the snapshot role's keys. Lists the version numbers of all
425-
target metadata files: the top-level targets.json and all delegated
427+
target metadata files: the top-level targets.EXT and all delegated
426428
roles.
427429

428-
/targets.json
430+
/targets.EXT
429431

430432
Signed by the target role's keys. Lists hashes and sizes of target
431433
files. Specifies delegation information and trusted keys for delegated
432434
target roles.
433435

434-
/timestamp.json
436+
/timestamp.EXT
435437

436438
Signed by the timestamp role's keys. Lists hash(es), size, and version
437439
number of the snapshot file. This is the first and potentially only
438440
file that needs to be downloaded when clients poll for the existence
439441
of updates.
440442

441-
/mirrors.json (optional)
443+
/mirrors.EXT (optional)
442444

443445
Signed by the mirrors role's keys. Lists information about available
444446
mirrors and the content available from each mirror.
@@ -452,13 +454,13 @@ repo](https://github.com/theupdateframework/specification/issues).
452454

453455
A delegated role file is located at:
454456

455-
/DELEGATED_ROLE.json
457+
/DELEGATED_ROLE.EXT
456458

457459
where DELEGATED_ROLE is the name of the delegated role that has been
458-
specified in targets.json. If this role further delegates trust to a role
460+
specified in targets.EXT. If this role further delegates trust to a role
459461
named ANOTHER_ROLE, that role's signed metadata file is made available at:
460462

461-
/ANOTHER_ROLE.json
463+
/ANOTHER_ROLE.EXT
462464

463465
Delegated target roles are authorized by the keys listed in the directly
464466
delegating target role.
@@ -472,7 +474,9 @@ repo](https://github.com/theupdateframework/specification/issues).
472474

473475
* **4.1. Metaformat**
474476

475-
All documents use a subset of the JSON object format, with
477+
Implementers of TUF may use any data format for metadata files as long as
478+
all fields in this specification are included. The examples in this document
479+
use a subset of the JSON object format, with
476480
floating-point numbers omitted. When calculating the digest of an
477481
object, we use the "canonical JSON" subdialect as described at
478482
http://wiki.laptop.org/go/Canonical_JSON

0 commit comments

Comments
 (0)