[tor-commits] [torspec/master] tweak proposal 220 based on comments from george, nick hopper

nickm at torproject.org nickm at torproject.org
Wed May 28 13:21:35 UTC 2014


commit 3762272611aca1ffd0c5896d713c94ecf98b8f47
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed May 28 09:21:29 2014 -0400

    tweak proposal 220 based on comments from george, nick hopper
---
 proposals/220-ecc-id-keys.txt |   42 ++++++++++++++++++++++-------------------
 1 file changed, 23 insertions(+), 19 deletions(-)

diff --git a/proposals/220-ecc-id-keys.txt b/proposals/220-ecc-id-keys.txt
index 94ec9a3..6f60ca5 100644
--- a/proposals/220-ecc-id-keys.txt
+++ b/proposals/220-ecc-id-keys.txt
@@ -78,8 +78,8 @@ Status: Draft
          EXPIRATION_DATE [3 Bytes]
          CERT_KEY_TYPE   [1 byte]
          CERTIFIED_KEY   [32 Bytes]
-         EXTENSIONS      [variable length, up to length of certificate
-                          minus 64 bytes.]
+         N_EXTENSIONS    [1 byte]
+         EXTENSIONS      [N_EXTENSIONS times]
          SIGNATURE       [64 Bytes]
 
    The "VERSION" field holds the value [01].  The "CERT_TYPE" field
@@ -94,14 +94,19 @@ Status: Draft
    The EXTENSIONS field contains zero or more extensions, each of
    the format:
 
-         ExtLength [1 or 2 bytes]
-         ExtType   [1 or 2 bytes]
+         ExtLength [2 bytes]
+         ExtType   [1 byte]
+         ExtFlags  [1 byte]
          ExtData   [Length bytes]
 
-   The ExtLength and ExtType fields can represent values between 0
-   and 2^15-1, representing values under 128 as "0xxxxxxx" and
-   values over 128 as "1xxxxxxx yyyyyyyy".  The meaning of the
-   ExtData field in an extension is type-dependent.
+   The meaning of the ExtData field in an extension is type-dependent.
+
+   The ExtFlags field holds flags; this flag is currently defined:
+
+      1 -- AFFECTS_VALIDATION. If this flag is present, then the
+           extension affects whether the certificate is valid; clients
+           must not accept the certificate as valid unless they
+           understand the extension.
 
    It is an error for an extension to be truncated; such a
    certificate is invalid.
@@ -142,8 +147,10 @@ Status: Draft
          SIGNATURE       [64 Bytes]
 
    FIXED_PREFIX is "REVOKEID" or "REVOKESK". VERSION is [01]. KEYTYPE is
-   [01] for revoking a signing key or [02] for revoking an identity key.
-   REVOKED_KEY is the key being revoked; IDENTITY_KEY is the node's
+   [01] for revoking a signing key, [02] for revoking an identity key,
+   or [03] for revoking an RSA identity key.
+   REVOKED_KEY is the key being revoked or a SHA256 hash of the key if
+   it is an RSA identity key; IDENTITY_KEY is the node's
    Ed25519 identity key. PUBLISHED is the time that the document was
    generated, in seconds since the epoch. REV_EXTENSIONS is left for a
    future version of this document.  The SIGNATURE is generated with
@@ -194,10 +201,11 @@ Status: Draft
    When an identity-ed25519 element is present, there must also be a
    "router-signature-ed25519" element.  It MUST be the next-to-last
    element in the descriptor, appearing immediately before the RSA
-   signature.  It MUST contain an ed25519 signature of the entire
-   document, from the first character up to but not including the
-   "router-signature-ed25519" element, prefixed with the string "Tor
-   router descriptor signature v1".  Its format is:
+   signature.  (In future versions of the descriptor format that do not
+   require an RSA identity key, it MUST be last.)  It MUST contain an
+   ed25519 signature of the entire document, from the first character up
+   to but not including the "router-signature-ed25519" element, prefixed
+   with the string "Tor router descriptor signature v1".  Its format is:
 
       "router-signature-ed25519" SP signature NL
 
@@ -285,10 +293,6 @@ Status: Draft
    0.2.4 without being de-listed from the consensus.
 
 
-   [XXX I could specify a way to do a signed "I'm downgrading for a
-   while!" statement, and kludge some code back into 0.2.4.x to better
-   support that?]
-
 3.2. Formats
 
    Vote and microdescriptor documents now contain an optional "id"
@@ -404,7 +408,7 @@ Status: Draft
    certificate, and an authentication certificate signed with the
    identity key.  The AUTHENTICATE cell contains a signature of
    various fields, including the contents of the AUTH_CHALLENGE
-   which the server sent cell, using the client's authentication
+   which the server sent, using the client's authentication
    key.  These cells allow the client to authenticate to the server.
 
 



More information about the tor-commits mailing list