|  | @@ -12,35 +12,35 @@ ARMA    - arma claims
 | 
	
		
			
				|  |  |          X Abandoned
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Short-term:
 | 
	
		
			
				|  |  | -NICK    . routers have identity key, link key, onion key.
 | 
	
		
			
				|  |  | -                - link key certs are signed by identity key
 | 
	
		
			
				|  |  | +        o routers have identity key, link key, onion key.
 | 
	
		
			
				|  |  | +                . link key certs are
 | 
	
		
			
				|  |  | +                  - signed by identity key
 | 
	
		
			
				|  |  |                    - not in descriptor
 | 
	
		
			
				|  |  | -                  - not in config
 | 
	
		
			
				|  |  | +                  o not in config
 | 
	
		
			
				|  |  |                    - not on disk
 | 
	
		
			
				|  |  | -                - identity and onion keys are in descriptor (and disk?)
 | 
	
		
			
				|  |  | -NICK    - upon boot, if it doesn't find identity key, generate it and write it.
 | 
	
		
			
				|  |  | -NICK    - also write a file with the identity key fingerprint in it
 | 
	
		
			
				|  |  | -NICK    - router generates descriptor: flesh out router_get_my_descriptor()
 | 
	
		
			
				|  |  | -          - figure out what directory generation stuff can be moved out of main.c
 | 
	
		
			
				|  |  | -NICK    - Routers sign descriptors with identity key
 | 
	
		
			
				|  |  | +                o identity and onion keys are in descriptor (and disk)
 | 
	
		
			
				|  |  | +        o upon boot, if it doesn't find identity key, generate it and write it.
 | 
	
		
			
				|  |  | +        o also write a file with the identity key fingerprint in it
 | 
	
		
			
				|  |  | +        o router generates descriptor: flesh out router_get_my_descriptor()
 | 
	
		
			
				|  |  | +        o Routers sign descriptors with identity key
 | 
	
		
			
				|  |  |  NICK    - routers put version number in descriptor
 | 
	
		
			
				|  |  |  NICK    - routers should maybe have `uname -a` in descriptor?
 | 
	
		
			
				|  |  | -NICK    . Give nicknames to routers
 | 
	
		
			
				|  |  | +        o Give nicknames to routers
 | 
	
		
			
				|  |  |                  o in config
 | 
	
		
			
				|  |  | -                - in descriptors
 | 
	
		
			
				|  |  | -ARMA    - router posts descriptor
 | 
	
		
			
				|  |  | -                - when it boots
 | 
	
		
			
				|  |  | -                - when it changes
 | 
	
		
			
				|  |  | -NICK    - change tls stuff so certs don't get written to disk, or read from disk
 | 
	
		
			
				|  |  | +                o in descriptors
 | 
	
		
			
				|  |  | +        o router posts descriptor
 | 
	
		
			
				|  |  | +                o when it boots
 | 
	
		
			
				|  |  | +                D when it changes
 | 
	
		
			
				|  |  | +        o change tls stuff so certs don't get written to disk, or read from disk
 | 
	
		
			
				|  |  |          o make directory.c 'thread'safe
 | 
	
		
			
				|  |  | -NICK    ? dirserver parses descriptor
 | 
	
		
			
				|  |  | +NICK    - dirserver parses descriptor
 | 
	
		
			
				|  |  |          - dirserver checks signature
 | 
	
		
			
				|  |  |          D client checks signature?
 | 
	
		
			
				|  |  |  NICK    - dirserver writes directory to file
 | 
	
		
			
				|  |  |            - reads that file upon boot
 | 
	
		
			
				|  |  |  NICK    - directory includes all routers, up and down
 | 
	
		
			
				|  |  |  NICK    - add "up" line to directory, listing nicknames
 | 
	
		
			
				|  |  | -ARMA    - find an application that uses half-open connections, to test
 | 
	
		
			
				|  |  | +ARMA    . find an application that uses half-open connections: openssh
 | 
	
		
			
				|  |  |  NICK    - instruments ORs to report stats
 | 
	
		
			
				|  |  |            - average cell fullness
 | 
	
		
			
				|  |  |            - average bandwidth used
 | 
	
	
		
			
				|  | @@ -48,7 +48,7 @@ NICK    - instruments ORs to report stats
 | 
	
		
			
				|  |  |          . integrate rep_ok functions, see what breaks
 | 
	
		
			
				|  |  |  ARMA    - configure log files. separate log file, separate severities.
 | 
	
		
			
				|  |  |  ARMA    - what assumptions break if we fclose(0) when we daemonize?
 | 
	
		
			
				|  |  | -NICK    o make buffer struct elements opaque outside buffers.c
 | 
	
		
			
				|  |  | +        o make buffer struct elements opaque outside buffers.c
 | 
	
		
			
				|  |  |  ARMA    - Go through log messages, reduce confusing error messages.
 | 
	
		
			
				|  |  |  ARMA    - make the logs include more info (fd, etc)
 | 
	
		
			
				|  |  |  ARMA    - add log convention to the HACKING file
 | 
	
	
		
			
				|  | @@ -56,10 +56,11 @@ ARMA    - add log convention to the HACKING file
 | 
	
		
			
				|  |  |          o change binary name to tor
 | 
	
		
			
				|  |  |          o change config files so you look at commandline, else look in
 | 
	
		
			
				|  |  |            /etc/torrc. no cascading.
 | 
	
		
			
				|  |  | -ARMA    - have an absolute datadir with fixed names for files, and fixed-name
 | 
	
		
			
				|  |  | +        o have an absolute datadir with fixed names for files, and fixed-name
 | 
	
		
			
				|  |  |            keydir under that with fixed names
 | 
	
		
			
				|  |  |  ARMA    - tor faq
 | 
	
		
			
				|  |  |            list all other systems, why we're different.
 | 
	
		
			
				|  |  | +NICK    - Move (most of) the router/directory code out of main.c
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Mid-term:
 | 
	
		
			
				|  |  |          - What happens when a circuit's length is 1? What breaks?
 |