[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)