[or-cvs] update TODO to reflect current reality

Roger Dingledine arma at seul.org
Fri Aug 22 03:17:16 UTC 2003


Update of /home/or/cvsroot/doc
In directory moria.mit.edu:/home2/arma/work/onion/cvs/doc

Modified Files:
	TODO 
Log Message:
update TODO to reflect current reality


Index: TODO
===================================================================
RCS file: /home/or/cvsroot/doc/TODO,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- TODO	25 Jun 2003 07:28:34 -0000	1.13
+++ TODO	22 Aug 2003 03:17:14 -0000	1.14
@@ -12,17 +12,26 @@
         X Abandoned
 
 
-        . Use a stronger cipher
-                o 3des for now
-                - aes now, by including the code ourselves
-        . Topics / circuits
-                o Implement topics
+        o Use a stronger cipher
+                o aes now, by including the code ourselves
+        . streams / circuits
+                o Implement streams
                 o Rotate circuits after N minutes?
                 X Circuits should expire when circuit->expire triggers
 NICK            . Handle half-open connections
                         o Figure out what causes connections to close, standardize
                           when we mark a connection vs when we tear it down
                 o Look at what ssl does to keep from mutating data streams
+                - Reduce streamid footprint from 7 bytes to 3 bytes
+                        - Check for collisions in streamid (now possible with
+                          just 3 bytes), and back up & replace with padding if so
+                - Use the 3 saved bytes to put pseudorandomness in each cell
+                - Use the 4 reserved bytes in each cell header to keep 1/5
+                  of a sha1 of the payload
+                        - (Move these 4 bytes into the stream header)
+                - Consider moving length into the stream header too
+                - Spec the stream_id stuff. Clarify that nobody on the backward
+                  stream should look at stream_id.
         X On the fly compression of each stream
         o Clean up the event loop (optimize and sanitize)
 ARMA    o Remove that awful concept of 'roles'
@@ -32,7 +41,10 @@
                         - Let user request certain nodes
                         - And disallow certain nodes
                         D Choose path by jurisdiction, etc?
-                - Rewrite how the AP works
+                - Make relay end cells have failure status and payload attached
+                - Streams that fail due to exit policy must reextend to new node
+                - Add extend_wait state to edge connections, thumb through them
+                  when the AP get an extended cell.
 SPEC!!  D Non-clique topologies
         D Implement our own memory management, at least for common structs
         . Appropriate logging
@@ -56,6 +68,13 @@
                         o An address doesn't resolve
                         o We have max workers running
                 o Consider taking the master out of the loop?
+        . Put CPU workers in separate processes
+                o Handle multiple cpu workers (one for each cpu, plus one)
+                o Queue for pending tasks if all workers full
+                o Support the 'process this onion' task
+                - Support the 'decrypt this RSA blob' handshake1 task
+                - Handle cpuworkers dying
+                D Support later handshake parts
         . Directory servers
                 D Automated reputation management
                 o Include key in source; sign directories
@@ -80,7 +99,7 @@
                 . Get socks4a support into Mozilla
         . Get tor to act like a socks server
                 o socks4, socks4a
-                - socks5
+                D socks5
 SPEC!!          - Handle socks commands other than connect, eg, bind?
         . Develop rendezvous points
                 . Spec (still needs step-by-step instructions)
@@ -100,7 +119,7 @@
                 - Performance tests, so we know when we've improved
                         . webload infrastructure (Bruce)
                         . httperf infrastructure (easy to set up)
-                        . oprofile (installed in RH 8.0)
+                        . oprofile (installed in RH >8.0)
         D Deploy a widespread network
         . Router twins
                 o Choose twin if primary is down, when laying circuit
@@ -112,29 +131,30 @@
                 - Red Hat spec file
                 - Debian spec file equivalent
         . Autoconf
-                . Which .h files are we actually using? Port to:
+                . Which .h files are we actually using?
+                . Port to:
                         o Linux
                         o BSD
                         . Solaris
-                        . Windows
+                        o Cygwin
+                        . Win32
                         o OS X
                 o openssl randomness
                 o inet_ntoa
-                - stdint.h
+                . stdint.h
                 - Make a script to set up a local network on your machine
         D Move away from openssl
                 o Abstract out crypto calls
                 D Look at nss, others? Just include code?
-
-        . transition addr to sin_addr (huh?)
-
         o Clean up the number of places that get to look at prkey
         . Clearer bandwidth management 
-        - Total rate limiting
-        . Look at OR handshake in more detail
+                - Do we want to remove bandwidth from OR handshakes?
+                - What about OP handshakes?
+        o Total rate limiting
+        o Look at OR handshake in more detail
                 o Spec it
                 o Merge OR and OP handshakes
-                . rearrange connection_or so it doesn't suck so much to read
+                o rearrange connection_or so it doesn't suck so much to read
                 D Periodic link key rotation. Spec?
         - More flexibility in node addressing
                 D Support IPv6 rather than just 4



More information about the tor-commits mailing list