Skip to content

Commit eb10b31

Browse files
committed
Remove POUF-2; Update POUF-1 with DSSE changes
Signed-off-by: Aditya Sirish <[email protected]>
1 parent 4cbb8d5 commit eb10b31

File tree

2 files changed

+37
-82
lines changed

2 files changed

+37
-82
lines changed

POUFs/pouf2.md

Lines changed: 0 additions & 66 deletions
This file was deleted.

POUFs/reference-POUF/pouf1.md

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
* POUF: 1
2-
* Title: Reference Implementation Using Canonical JSON
3-
* Version: 2
4-
* Last-Modified: 06-May-2020
1+
*" POUF: 1
2+
* Title: Reference Implementation Using Canonical JSON and DSSE
3+
* Version: 3
4+
* Last-Modified: 21-Jun-2021
55
* Author: Marina Moore, Joshua Lock
66
* Status: Draft
77
* TUF Version Implemented: 1.0
8-
* Implementation Version(s) Covered: v0.12.*
8+
* Implementation Version(s) Covered: TODO
99
* Content-Type: text/markdown
1010
* Created: 25-November-2018
1111

@@ -14,7 +14,7 @@ This POUF describes the protocol, operations, usage, and formats for the TUF ref
1414

1515
The reference implementation includes all required features of the TUF standard, as well as many of the optional features as a reference for anyone wishing to implement TUF. The implementation uses Canonical JSON encoding.
1616

17-
This version of the POUF covers v0.12.* of the reference implementation and has been updated to reflect that: snapshot.json only lists targets metadata (top-level and delegated), and timestamp.json includes hashes and length in METAFILES.
17+
This version of the POUF covers v0.12.* of the reference implementation and has been updated to reflect that: snapshot.json only lists targets metadata (top-level and delegated), and timestamp.json includes hashes and length in METAFILES. TODO: update this bit
1818

1919
# Protocol
2020

@@ -67,19 +67,22 @@ The following steps must be completed before any updates can be installed:
6767
# Formats
6868

6969
## General Principals
70-
All signed metadata objects have the format:
71-
72-
{ "signed" : ROLE,
73-
"signatures" : [
74-
{ "keyid" : KEYID,
75-
"sig" : SIGNATURE }
76-
, ... ]
70+
All signed metadata use v1 of [Dead Simple Signing Envelope (DSSE)](https://github.com/secure-systems-lab/signing-spec):
71+
72+
{
73+
"payload": "<Base64(SERIALIZED_BODY)>",
74+
"payloadType": "<PAYLOAD_TYPE>",
75+
"signatures": [{
76+
"keyid": "<KEYID>",
77+
"sig": "<Base64(SIGNATURE)>"
78+
}]
7779
}
7880

79-
8081
where:
8182

82-
* ROLE is a dictionary whose "_type" field describes the role type.
83+
* SERIALIZED_BODY is a dictionary whose "_type" field describes the role type.
84+
85+
* PAYLOAD_TYPE is a fixed as "application/vnd.tuf+json" identifying it as TUF metadata.
8386

8487
* KEYID is the identifier of the key signing the ROLE dictionary.
8588

@@ -347,7 +350,7 @@ The timestamp file is signed by a timestamp key. It indicates the
347350
"hashes" : HASHES }
348351
, ...
349352
}
350-
353+
t
351354
METAPATH is the the snapshot metadata file's path on the repository
352355
relative to the metadata base URL.
353356

@@ -406,7 +409,25 @@ This profile was included in TUF security audits available at https://theupdatef
406409

407410
# Version History
408411

412+
## 3
413+
Update to propose a transition to using DSSE as the underlying signature wrapper for TUF metadata.
414+
409415
## 2
410416
Updated to reflect the latest (v0.12.2) reference implementation.
411417
* snapshot.json lists only the top-level and delegated targets metadata
412418
* timestamp.json includes hashes and length of snapshot.json
419+
{ "signed" : ROLE,
420+
"signatures" : [
421+
{ "keyid" : KEYID,
422+
"sig" : SIGNATURE }
423+
, ... ]
424+
}
425+
426+
427+
where:
428+
429+
* ROLE is a dictionary whose "_type" field describes the role type.
430+
431+
* KEYID is the identifier of the key signing the ROLE dictionary.
432+
433+
* SIGNATURE is a hex-encoded signature of the canonical JSON form of ROLE.

0 commit comments

Comments
 (0)