[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] update TODO to reflect current reality
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