| 
					
				 | 
			
			
				@@ -177,7 +177,7 @@ which reveals the downstream node. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Once the handshake is complete, the two sides send cells 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    (specified below) to one another.  Cells are sent serially, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   encrypted with the AES-CNT keystream specified by the handshake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   encrypted with the AES-CTR keystream specified by the handshake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    protocol.  Over a connection, communicants encrypt outgoing cells 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    with the connection's K_f, and decrypt incoming cells with the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    connection's K_b. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -332,6 +332,10 @@ which reveals the downstream node. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    as its payload.  The initiating onion router chooses some random 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    ACI not yet used on the connection between the two onion routers. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   As an extension (called router twins), if the desired next onion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   router R in the circuit is down, and some other onion router R' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   has the same key as R, then it's ok to extend to R' rather than R. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    When an onion router receives a CREATE cell, if it already has a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    circuit on the given connection with the given ACI, it drops the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    cell.  Otherwise, sometime after receiving the CREATE cell, it completes 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -387,7 +391,7 @@ which reveals the downstream node. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Otherwise, if the OR is not at the OP edge of the circuit (that is, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    either an 'exit node' or a non-edge node), it de/encrypts the length 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   field and the payload with AES/CNT, as follows: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   field and the payload with AES/CTR, as follows: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         'Forward' relay cell (same direction as CREATE): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Use Kf as key; encrypt. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         'Back' relay cell (opposite direction from CREATE): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -402,13 +406,13 @@ which reveals the downstream node. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    handshakes. -RD] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Otherwise, if the data cell is coming from the OP edge of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   circuit, the OP decrypts the length and payload fields with AES/CNT as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   circuit, the OP decrypts the length and payload fields with AES/CTR as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    follows: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          OP sends data cell to node R_M: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             For I=1...M, decrypt with Kf_I. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Otherwise, if the data cell is arriving at the OP edge if the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   circuit, the OP encrypts the length and payload fields with AES/CNT as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   circuit, the OP encrypts the length and payload fields with AES/CTR as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    follows: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          OP receives data cell: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             For I=N...1,  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -616,3 +620,8 @@ directory, from the characters "signed-directory", through the newline 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 after "directory-signature".  This digest is then padded with PKCS.1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 and signed with the directory server's signing key. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+7.3. Behavior of a directory server 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+lists nodes that are connected currently 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+speaks http on a socket, spits out directory on request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 |