Fix some markdown in README.md.

Markdown breakage 1: The internet led me to believe this is how you
did a <dl> in markdown.  Apparently it wasn't.

Markdown breakage 2: I forgot how lists work!

Also, add a paragraph about stuff you can try.
This commit is contained in:
Nick Mathewson 2020-05-07 20:09:11 -04:00
parent 1491870db6
commit 18ceb69453
1 changed files with 40 additions and 34 deletions

View File

@ -10,36 +10,49 @@ also short for "artifact". It has nothing to do with the
## What's here and what isn't. ## What's here and what isn't.
So far the code has untested or under-tested implementations of: So far the code has untested or under-tested implementations of:
* the ntor protocol
* the relay crypto algorithm * the ntor protocol
* parsing and encoding all the cell types (except for hs-related * the relay crypto algorithm
* parsing and encoding all the cell types (except for hs-related
ones) ones)
* parsing and validating ed25519 certificates * parsing and validating ed25519 certificates
* parsing and validating router descriptors * parsing and validating router descriptors
Before I share it, I think it needs more work on: Before I share it, I think it needs more work on:
* parsing the other kinds of network documents
* link authentication * parsing the other kinds of network documents
* a sensible api for cell types * link authentication
* a toy client that builds a circuit through the network * a sensible api for cell types
* a toy client that builds a circuit through the network
and uses it to exit. and uses it to exit.
There is no support yet for: There is no support yet for:
* Actually connecting to the network in a reasonable way
* choosing paths through the network in a reasonable way * Actually connecting to the network in a reasonable way
* doing anything with the network in a reasonable way * choosing paths through the network in a reasonable way
* actually building circuits * doing anything with the network in a reasonable way
* creating network documents * actually building circuits
* v2 onion service anything * creating network documents
* v3 onion service anything * v2 onion service anything
* the directory protocol * v3 onion service anything
* lots of optimizations that Tor does * the directory protocol
* working with no_std * lots of optimizations that Tor does
* working with no_std
I do not plan to implement full versions of any of those before I I do not plan to implement full versions of any of those before I
share this code for more comment, though I might do a little. Who share this code for more comment, though I might do a little. Who
knows? knows?
## What can I do?
You can build this all with `cargo build`.
You can run the tests, such as they are, with `cargo test`.
You can make documentation with `cargo doc`. I prefer
`cargo doc --no-deps --document-private-items`, to include documentation for
private members but not for dependencies.
## Caveat haxxor: what to watch out for ## Caveat haxxor: what to watch out for
This is a work in progress. It doesn't "do Tor" yet, and what parts This is a work in progress. It doesn't "do Tor" yet, and what parts
@ -72,33 +85,26 @@ lot by the time we're done.
The current crates are: The current crates are:
caret `caret`: A utility for generating enumerations with helpful trait
: A utility for generating enumerations with helpful trait
implementations implementations
tor-llcrypto `tor-llcrypto`: Wrappers and re-imports of cryptographic code that Tor needs in
: Wrappers and re-imports of cryptographic code that Tor needs in
various ways. Other crates should use this crate, and not actually various ways. Other crates should use this crate, and not actually
use any crypto crates directly use any crypto crates directly
tor-bytes `tor-bytes`: Byte-by-byte encoder and decoder functions and traits. We use
: Byte-by-byte encoder and decoder functions and traits. We use
this to safely parse cells, certs, and other byte-oriented things. this to safely parse cells, certs, and other byte-oriented things.
tor-cert `tor-cert`: Decoding and checking signatures on Tor's ed25519 certificates.
: Decoding and checking signatures on Tor's ed25519 certificates.
tor-protover `tor-protover`: Minimal implementation of the Tor subprotocol verisoning
: Minimal implementation of the Tor subprotocol verisoning system. system. Less complete than the one in Tor's current src/rust, but more
Less complete than the one in Tor's current src/rust, but more
simple. simple.
tor-netdoc `tor-netdoc`: Parsing for Tor's network documents. Currently only handles
: Parsing for Tor's network documents. Currently only handles
routerdescs. Underdocumented and too big. needs splitting. routerdescs. Underdocumented and too big. needs splitting.
tor-proto `tor-proto`: Functions to work with cell types, handshakes, and other aspects
: Functions to work with cell types, handshakes, and other aspects
of the Tor protocol. Underdocumented, too big, needs of the Tor protocol. Underdocumented, too big, needs
refactoring. refactoring.