Commit Graph

39 Commits

Author SHA1 Message Date
Nick Mathewson 6a30f40726 Remove the TODO file in favor of gitlab. 2021-02-05 13:50:48 -05:00
Nick Mathewson be23950f37 TODO 2020-12-03 10:12:54 -05:00
Nick Mathewson 06675c180c update the TODO 2020-10-27 14:58:34 -04:00
Nick Mathewson 6f3d5d061d portpolicy: note a spec issue 2020-10-19 08:08:38 -04:00
Nick Mathewson 1abd93d696 Clarify kludgey magic in our to_der() function. 2020-10-18 16:50:40 -04:00
Nick Mathewson 471ada89bb Update TODO 2020-10-15 14:48:35 -04:00
Nick Mathewson 13ecfa2786 Mark item done in todo 2020-10-15 12:57:34 -04:00
Nick Mathewson 85151085ec llcrypto: Move ed25519 module into its own file. 2020-10-15 11:45:06 -04:00
Nick Mathewson 6a937cedc8 TODO: Add and link tickets for Milestone 3 items 2020-10-13 13:46:55 -04:00
Nick Mathewson 328fa994fb Revise TODO and README; declare "milestone 2" done.
Part of this "declaring milestone 2 done" business is a matter of
putting additional tests and documentation into milestone 3 where
they logically belong.
2020-10-13 13:01:33 -04:00
Nick Mathewson 1085ca86dc Revise DropMark defense to use a better type and match Tor's behavior. 2020-10-13 11:52:05 -04:00
Nick Mathewson 3d597a10bc Document all private members in tor-proto 2020-10-13 10:55:07 -04:00
Nick Mathewson b2007b7082 Make sure that protocol errors terminate the circuit responsible. 2020-10-13 10:14:01 -04:00
Nick Mathewson 6b0e3efbd0 Improve handling of circuit closure or failure on reactor shutdown.
We already handled the case okay when we were reading on streams,
since the reactor's going away would drop the sender side of their
mpsc channels.  But if the reactor went away, nothing would tell
_writing_ streams that they needed to close.

Now we handle that case, as well as anybody who is waiting on
a meta-cell to get back to them.
2020-10-13 09:26:23 -04:00
Nick Mathewson c12aed3d0d Try giving distinct handling to streams where END has been sent
This is the first step along the line to handling Tor issue
tor#27557.  We want to remember streams that we've ended and treat
them as distinct from streams that have never existed
2020-10-12 11:36:17 -04:00
Nick Mathewson 6b2ba9a16c Document remaining private members of tor-netdoc. 2020-10-10 16:41:43 -04:00
Nick Mathewson f8fde02c0b Document most private items in tor-netdoc. 2020-10-09 18:02:02 -04:00
Nick Mathewson cb0b115a7e mark off a TODO item. 2020-10-09 16:43:23 -04:00
Nick Mathewson 68b969773a client-main: Add an option to run a test more than once 2020-10-09 13:10:31 -04:00
Nick Mathewson fe3c79d0d1 add point estimates to TODO 2020-10-09 11:37:45 -04:00
Nick Mathewson 15564bd1b2 check off the deadlock in the todo. 2020-10-09 11:31:03 -04:00
Nick Mathewson 079b38a609 Rewrite the TODO file. 2020-09-28 15:04:25 -04:00
Nick Mathewson 653de035bc Make sendme authentication optional.
This code deviates from current tor in that it allows missing
sendme authentications only when we know we're talking to an old
relay, or when we don't know the version of the relay we're talking
to.
2020-09-25 19:20:32 -04:00
Nick Mathewson aa0dc66fe3 Update TODO and README. 2020-09-25 18:49:23 -04:00
Nick Mathewson 50848b8fa0 Try to make a send/receive style API for streams. 2020-09-24 18:03:03 -04:00
Nick Mathewson da3a8fdd50 Add support for RELAY_END cells.
This was a hard one.  I need to make sure that we send an END cell
when the stream is dropped.  But we can't call an .await from inside
the drop() function, since drop() isn't async, and we don't have an
executor.

Fortunately, you can call send() on a oneshot::Sender without having
to await on it, so that's the obvious thing to put in drop().  But
we need some way to make sure that the oneshot::Receiver is given to
the reactor, and is .awaited.  For that, we needed a control
channel.  And the reactor needs to treat the control channel and the
close messages as equally important.

So that's how I wound up with a
  Fuse<Select<mpsc::Receiver<Result<Foo>>,
              SelectAll<Once<oneshot::Receiver<Foo>>>>>.

I doubt that this is actually the best way to handle any of this!
2020-09-24 15:33:54 -04:00
Nick Mathewson d96a949cb3 Update documentation 2020-09-21 13:43:58 -04:00
Nick Mathewson d5d11d6923 Update TODO file 2020-09-21 13:14:21 -04:00
Nick Mathewson bc00417f01 Start implementing streams and circuit-level reactors.
Also, revise nearly all of the circuit/channel interaction to
actually send relay cells to the right place and do sensible things
with them.
2020-09-21 10:42:36 -04:00
Nick Mathewson 0075b784a1 De-parameterize channel and circuit
By putting the cell-sink in a box, we can get rid of the need for
having everything that uses a channel or a circuit know what kind
of underlying TLS implementation it has.
2020-09-19 22:29:18 -04:00
Nick Mathewson 3d5f8cfec5 update wishlist: the rsa crate now supports oaep 2020-09-13 13:05:07 -04:00
Nick Mathewson ee9b871bc5 Make client-demo launch a request to www.torproject.org:80 2020-09-12 21:32:00 -04:00
Nick Mathewson 02fc8b2528 Implement extend2/extended2 handshake.
This is not a production-ready implementation: it will break if a
circuit is used for anything while an extend is pending.

Client-demo can now build 3-hop circuits.
2020-09-12 20:48:07 -04:00
Nick Mathewson d1039dda9b Simple functions to send and receive relay cells. 2020-09-12 16:25:10 -04:00
Nick Mathewson c978480aae more todo edits 2020-09-12 15:46:38 -04:00
Nick Mathewson 341e557b4c Revise TODO; add some milestones. 2020-09-12 14:26:26 -04:00
Nick Mathewson 567af1a82e update readme 2020-09-09 19:27:47 -04:00
Nick Mathewson 1491870db6 Update the TODO 2020-05-08 22:21:47 -04:00
Nick Mathewson bbcbf47902 Fresh git repository for work on "arti"
Arti is a rust tor implementation.  It's project I've been working
on for a few months now, in weekends and in spare time.  It doesn't
speak the tor protocol yet, and it doesn't connect to the network at
all.

It needs much more documentation and testing, but I'm just about
ready to show it to others.  See the README.md for a description of
what is there and what isn't.
2020-05-07 19:58:14 -04:00