@@ -309,11 +309,11 @@ Version: **1.0 (Draft)**
309
309
310
310
- ** 2.1.3 Snapshot role**
311
311
312
- The snapshot role signs a metadata file that provides information about the
313
- latest version of all of the other metadata on the repository (excluding the
314
- timestamp file, discussed below). This information allows clients to know
315
- which metadata files have been updated and also prevents mix-and-match
316
- attacks.
312
+ The snapshot role signs a metadata file that provides information about
313
+ the latest version of all of the other metadata on the repository
314
+ (excluding the timestamp file, discussed below). This information allows
315
+ clients to know which metadata files have been updated and also prevents
316
+ mix-and-match attacks.
317
317
318
318
- ** 2.1.4 Timestamp role**
319
319
@@ -1007,8 +1007,8 @@ Version: **1.0 (Draft)**
1007
1007
X number of bytes (because the size is unknown). The value for X is set by
1008
1008
the authors of the application using TUF. For example, X may be tens of
1009
1009
kilobytes. The filename used to download the root metadata file is of the
1010
- fixed form VERSION .FILENAME.EXT (e.g., 42.root.json). If this file is not
1011
- available, then go to step 1.8.
1010
+ fixed form VERSION_NUMBER .FILENAME.EXT (e.g., 42.root.json). If this file
1011
+ is not available, then go to step 1.8.
1012
1012
1013
1013
1.3. ** Check signatures.** Version N+1 of the root metadata file MUST have
1014
1014
been signed by: (1) a threshold of keys specified in the trusted root
@@ -1060,15 +1060,14 @@ Version: **1.0 (Draft)**
1060
1060
metadata file.
1061
1061
1062
1062
3 . ** Download and check the snapshot metadata file** , up to the number of
1063
- bytes specified in the timestamp metadata file.
1064
- If consistent snapshots are not used (see Section 7), then the filename
1065
- used to download the snapshot metadata file is of the fixed form
1066
- FILENAME.EXT (e.g., snapshot.json).
1067
- Otherwise, the filename is of the form VERSION.FILENAME.EXT (e.g.,
1068
- 42.snapshot.json), where VERSION is the version number of the snapshot
1069
- metadata file listed in the timestamp metadata file. In either case,
1070
- the client MUST write the file to non-volatile storage as
1071
- FILENAME.EXT.
1063
+ bytes specified in the timestamp metadata file. If consistent snapshots
1064
+ are not used (see Section 7), then the filename used to download the
1065
+ snapshot metadata file is of the fixed form FILENAME.EXT (e.g.,
1066
+ snapshot.json). Otherwise, the filename is of the form
1067
+ VERSION_NUMBER.FILENAME.EXT (e.g., 42.snapshot.json), where VERSION_NUMBER
1068
+ is the version number of the snapshot metadata file listed in the timestamp
1069
+ metadata file. In either case, the client MUST write the file to
1070
+ non-volatile storage as FILENAME.EXT.
1072
1071
1073
1072
3.1. ** Check against timestamp metadata.** The hashes and version number
1074
1073
of the new snapshot metadata file MUST match the hashes and version number
@@ -1100,17 +1099,16 @@ Version: **1.0 (Draft)**
1100
1099
file.
1101
1100
1102
1101
4 . ** Download and check the top-level targets metadata file** , up to either
1103
- the number of bytes specified in the snapshot metadata file, or some
1104
- Z number of bytes. The value for Z is set by the authors of the application
1105
- using TUF. For example, Z may be tens of kilobytes.
1106
- If consistent snapshots are not used (see Section 7), then the filename
1107
- used to download the targets metadata file is of the fixed form
1108
- FILENAME.EXT (e.g., targets.json).
1109
- Otherwise, the filename is of the form VERSION.FILENAME.EXT (e.g.,
1110
- 42.targets.json), where VERSION is the version number of the targets
1111
- metadata file listed in the snapshot metadata file.
1112
- In either case, the client MUST write the file to non-volatile storage as
1113
- FILENAME.EXT.
1102
+ the number of bytes specified in the snapshot metadata file, or some Z
1103
+ number of bytes. The value for Z is set by the authors of the application
1104
+ using TUF. For example, Z may be tens of kilobytes. If consistent
1105
+ snapshots are not used (see Section 7), then the filename used to download
1106
+ the targets metadata file is of the fixed form FILENAME.EXT (e.g.,
1107
+ targets.json). Otherwise, the filename is of the form
1108
+ VERSION_NUMBER.FILENAME.EXT (e.g., 42.targets.json), where VERSION_NUMBER
1109
+ is the version number of the targets metadata file listed in the snapshot
1110
+ metadata file. In either case, the client MUST write the file to
1111
+ non-volatile storage as FILENAME.EXT.
1114
1112
1115
1113
4.1. ** Check against snapshot metadata.** The hashes (if any), and version
1116
1114
number of the new targets metadata file MUST match the trusted snapshot metadata.
@@ -1254,22 +1252,23 @@ Version: **1.0 (Draft)**
1254
1252
1255
1253
Additionally, the timestamp metadata (timestamp.json) should also be
1256
1254
written to non-volatile storage whenever it is updated. It is optional for
1257
- an implementation to write identical copies at digest.timestamp.json for
1258
- record-keeping purposes, because a cryptographic hash of the timestamp
1259
- metadata is usually not known in advance. The same step applies to the root
1260
- metadata (root.json), although an implementation must write both root.json
1261
- and digest.root.json because it is possible to download root metadata both
1262
- with and without known hashes. These steps are required because these are
1263
- the only metadata files that may be requested without known hashes.
1255
+ an implementation to write identical copies at
1256
+ version_number.timestamp.json for record-keeping purposes, because a
1257
+ cryptographic hash of the timestamp metadata is usually not known in
1258
+ advance. The same step applies to the root metadata (root.json), although
1259
+ an implementation must write both root.json and version_number.root.json
1260
+ because it is possible to download root metadata both with and without
1261
+ known version numbers. These steps are required because these are the only
1262
+ metadata files that may be requested without known version numbers.
1264
1263
1265
1264
Most importantly, no metadata file format must be updated to refer to the
1266
- names of metadata or target files with their hashes included. In other
1267
- words, if a metadata file A refers to another metadata or target file B as
1265
+ names of metadata or target files with their version numbers included. In
1266
+ other words, if a metadata file A refers to another metadata file B as
1268
1267
filename.ext, then the filename must remain as filename.ext and not
1269
- digest .filename.ext. This rule is in place so that metadata signed by roles
1270
- with offline keys will not be forced to sign for the metadata file whenever
1271
- it is updated. In the next subsection, we will see how clients will
1272
- reproduce the name of the intended file.
1268
+ version_number .filename.ext. This rule is in place so that metadata signed
1269
+ by roles with offline keys will not be forced to sign for the metadata file
1270
+ whenever it is updated. In the next subsection, we will see how clients
1271
+ will reproduce the name of the intended file.
1273
1272
1274
1273
Finally, the root metadata should write the Boolean "consistent_snapshot"
1275
1274
attribute at the root level of its keys of attributes. If consistent
0 commit comments