[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[minion-cvs] Many changes and bugfixes suggested by Peter.



Update of /home/minion/cvsroot/doc/spec
In directory moria.mit.edu:/tmp/cvs-serv9668/doc/spec

Modified Files:
	dir-spec.txt minion-spec.txt 
Log Message:
Many changes and bugfixes suggested by Peter.

Index: dir-spec.txt
===================================================================
RCS file: /home/minion/cvsroot/doc/spec/dir-spec.txt,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- dir-spec.txt	3 Oct 2003 22:32:39 -0000	1.16
+++ dir-spec.txt	6 Oct 2003 18:52:08 -0000	1.17
@@ -120,24 +120,24 @@
 
       Message ::= Section | Message Section
       Section ::= Header | Section Entry
-      Header ::= '[' Identifier ']' EOL
+      Header ::= '[' Identifier ']' OptSpace EOL
       Entry ::= Identifier ':' Space OptValue EOL
 
       Identifier ::= IdentifierChar | Identifier IdentifierChar
       IdentifierChar ::= [Any character from ASCII 33 through ASCII 126
          inclusive, excluding ASCII 58, ASCII 91, ASCII 93.]
 
-      OptValue ::= Value |
-      Value ::= NonSpaceValueChar | ValueChar Value
+      OptValue ::= Value OptSpace |
+      Value ::= NonSpaceValue | Value Space NonSpaceValue
+      NonSpaceValue ::= NonSpaceValueChar | NonSpaceValue NonSpaceValueChar
       NonSpaceValueChar ::= [Any character from ASCII 33 through ASCII
          126 inclusive.]
-      ValueChar ::= NonSpaceValueChar | ' ' | '\t'
 
       Space ::= SpaceChar | Space SpaceChar
       SpaceChar ::= ' ' | '\t'
       OptSpace ::= Space |
 
-      EOL ::= OptSpace '\n' | OptSpace '\r' | OptSpace '\r' \n'
+      EOL ::= '\n' | '\r' | '\r' '\n'
 
    An example follows (indented by a uniform number of spaces):
 
@@ -220,10 +220,11 @@
       - First, any trailing whitespace on any line is removed, and every
         EOL is converted to a single NL character.
 
-      - Second, the message is converted to a "stub" format: the values
-        of any _unsigned_ entries in the message are replaced with the
-        empty string.  (Their entry lines now contain an identifier, a
-        colon, a single ' ' character, and a single NL character.)
+      - Second, the message is converted to a "stub" format: the values of
+        any _unsigned_ entries in the message are replaced with the empty
+        string, and trailing space is removed from their lines.  (Their
+        entry lines now contain an identifier, a colon, and a single NL
+        character.)
 
       - Third, a SHA-1 digest is computed over the resulting stub
         message.
@@ -336,6 +337,12 @@
               the identity key.  (See "minion-spec.txt" for more
               information.)
 
+	      [XXXX This field is obsolete; it can be derived from the
+	      identity key.  We used to need it because the MMTP
+	      certificates used to be self-signed; now they are signed by
+	      the identity key.  This field will not be used in Mixminion
+	      0.0.6; it will be removed in Mixminion 0.0.7.]
+
         'Protocols': A comma-separated list of the versions of MMTP this
               server accepts.
 
@@ -410,7 +417,7 @@
 
    If a descriptor's lifetime is all either in the past or contained
    within the lifetimes of more recently published descriptors for the
-   same server, that descriptor is said to be Superceded.
+   same server, that descriptor is said to be Superseded.
 
 4. Directory Format
 
@@ -554,7 +561,7 @@
 
    For every mix, the directory SHOULD either include no descriptors
    from that mix; or include all of that mix's published descriptors
-   that are not expired or superceded, and that do not become valid
+   that are not expired or superseded, and that do not become valid
    before a given cutoff time. [[2 weeks]].
 
    A directory server decides, for every mix whose descriptors

Index: minion-spec.txt
===================================================================
RCS file: /home/minion/cvsroot/doc/spec/minion-spec.txt,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- minion-spec.txt	2 Oct 2003 14:23:33 -0000	1.15
+++ minion-spec.txt	6 Oct 2003 18:52:08 -0000	1.16
@@ -372,18 +372,22 @@
    - Encrypt(K, M) = M ^ PRNG(K,Len(M)) - The encryption of an octet array
      M with our stream cipher, using key K.  (Encrypt(Encrypt(M)) = M.)
 
+   - SubKey(K,S) - Derivation of a named sub key, using a master key K
+     (Len(K) = 16) and an aribrary length ASCII String.
+     (Len(SubKey(K,S)) = 16)
+     SubKey(K,S) = Hash(K | S)[0:16]
+
    - SPRP_Encrypt(K, M) - The encryption of an octet array M using our
      super-pseudorandom permutation with key K.
      (Len(K) = SPRP_KEY_LEN = 20; Len(SPRP_ENC(K,M)) = Len(M))
 
+     SPRP_Encrypt(K,S,M) is shorthand for SPRP_Encrypt(SubKey(K,S),M)
+
    - SPRP_Decrypt(K, M) - The decryption of an octet array M using our
      super-pseudorandom permutation with key K.
      (Len(K) = SPRP_KEY_LEN = 20; Len(SPRP_DEC(K,M)) = Len(M))
 
-   - SubKey(K,S) - Derivation of a named sub key, using a master key K
-     (Len(K) = 16) and an aribrary length ASCII String.
-     (Len(SubKey(K,S)) = 16)
-     SubKey(K,S) = Hash(K, S)[0:16]
+     SPRP_Decrypt(K,S,M) is shorthand for SPRP_Decrypt(SubKey(K,S),M).
 
    - Int(bits, N) - A big-endian, bits-bit representation of the
      integer N.
@@ -766,7 +770,7 @@
         // Phase 1
         if H2 is a reply block, then
                Let K_SURB = the end-to-end encryption key in H2
-               P = SRPR_Decrypt(K_SURB, "PAYLOAD ENCRYPT" P)
+               P = SPRP_Decrypt(K_SURB, "PAYLOAD ENCRYPT", P)
         else // H2 is not a reply block
                for i = N .. 1
                        P = SPRP_Encrypt(SK2_i, "PAYLOAD ENCRYPT", P)