@@ -27,8 +27,9 @@ There is no other simple, foolproof signature scheme that we are aware of.
27
27
CA for ` x5c ` . It also requires a JSON library even if the payload is not
28
28
JSON, though this is a minor issue.
29
29
30
- * [ PASETO] is JSON-specific and too opinionated. For example, it mandates
31
- ed25519 signatures, which may not be useful in all cases.
30
+ * [ PASETO] is too opinionated to be used in all cases. For example, it
31
+ mandates ed25519 signatures, which [ Google Cloud KMS] does not support.
32
+ PASETO also requires JSON payloads, which may not be desirable in all cases.
32
33
33
34
The intent of this project is to define a minimal signature scheme that avoids
34
35
these issues.
@@ -118,11 +119,20 @@ Rationales for specific decisions:
118
119
119
120
- See [ Motivation] ( #motivation ) .
120
121
121
- - Why use PAE?
122
+ - Why use a pre-authentication encoding ( PAE) ?
122
123
123
124
- Because we need an unambiguous way of serializing two fields,
124
- payloadType and payload. PAE is already documented and good enough. No
125
- need to reinvent the wheel.
125
+ payloadType and payload. PASETO already solved this problem by
126
+ developing its PAE, which is where we got the idea and the name.
127
+ [ ed25519ctx] uses the same idea, though it was developed independently.
128
+
129
+ - Why not use PASETO's PAE?
130
+
131
+ - Originally we did, but the minor difficulty of working with binary
132
+ encoding led us to develop a simpler ASCII-based PAE. While we were at
133
+ it, we switched to using a fixed number of inputs and added a version
134
+ string ("DSSEv1") to allow for future changes.
135
+ ([ more info] ( https://github.com/secure-systems-lab/dsse/issues/27 ) )
126
136
127
137
- Why not stay backwards compatible by requiring the payload to always be JSON
128
138
with a "_ type" field? Then if you want a non-JSON payload, you could simply
@@ -155,6 +165,8 @@ and new envelope format by detecting the presence of the `payload` field (new
155
165
format) vs ` signed ` field (old format).
156
166
157
167
[ Canonical JSON ] : http://wiki.laptop.org/go/Canonical_JSON
168
+ [ ed25519ctx ] : https://www.cryptologie.net/article/497/eddsa-ed25519-ed25519-ietf-ed25519ph-ed25519ctx-hasheddsa-pureeddsa-wtf/
169
+ [ Google Cloud KMS ] : https://cloud.google.com/security-key-management
158
170
[ in-toto ] : https://in-toto.io
159
171
[ JWS ] : https://tools.ietf.org/html/rfc7515
160
172
[ PASETO ] : https://github.com/paragonie/paseto/blob/master/docs/01-Protocol-Versions/Version2.md#sig
0 commit comments