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.
So far the code has untested or under-tested implementations of:
* the ntor protocol
* the relay crypto algorithm
* parsing and encoding all the cell types (except for hs-related
* the ntor protocol
* the relay crypto algorithm
* parsing and encoding all the cell types (except for hs-related
ones)
* parsing and validating ed25519 certificates
* parsing and validating router descriptors
* parsing and validating ed25519 certificates
* parsing and validating router descriptors
Before I share it, I think it needs more work on:
* parsing the other kinds of network documents
* link authentication
* a sensible api for cell types
* a toy client that builds a circuit through the network
* parsing the other kinds of network documents
* link authentication
* a sensible api for cell types
* a toy client that builds a circuit through the network
and uses it to exit.
There is no support yet for:
* Actually connecting to the network in a reasonable way
* choosing paths through the network in a reasonable way
* doing anything with the network in a reasonable way
* actually building circuits
* creating network documents
* v2 onion service anything
* v3 onion service anything
* the directory protocol
* lots of optimizations that Tor does
* working with no_std
* Actually connecting to the network in a reasonable way
* choosing paths through the network in a reasonable way
* doing anything with the network in a reasonable way
* actually building circuits
* creating network documents
* v2 onion service anything
* v3 onion service anything
* the directory protocol
* lots of optimizations that Tor does
* working with no_std
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
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
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:
caret
: A utility for generating enumerations with helpful trait
`caret`: A utility for generating enumerations with helpful trait
implementations
tor-llcrypto
: Wrappers and re-imports of cryptographic code that Tor needs in
`tor-llcrypto`: Wrappers and re-imports of cryptographic code that Tor needs in
various ways. Other crates should use this crate, and not actually
use any crypto crates directly
tor-bytes
: Byte-by-byte encoder and decoder functions and traits. We use
`tor-bytes`: Byte-by-byte encoder and decoder functions and traits. We use
this to safely parse cells, certs, and other byte-oriented things.
tor-cert
: Decoding and checking signatures on Tor's ed25519 certificates.
`tor-cert`: Decoding and checking signatures on Tor's ed25519 certificates.
tor-protover
: Minimal implementation of the Tor subprotocol verisoning system.
Less complete than the one in Tor's current src/rust, but more
`tor-protover`: Minimal implementation of the Tor subprotocol verisoning
system. Less complete than the one in Tor's current src/rust, but more
simple.
tor-netdoc
: Parsing for Tor's network documents. Currently only handles
`tor-netdoc`: Parsing for Tor's network documents. Currently only handles
routerdescs. Underdocumented and too big. needs splitting.
tor-proto
: Functions to work with cell types, handshakes, and other aspects
`tor-proto`: Functions to work with cell types, handshakes, and other aspects
of the Tor protocol. Underdocumented, too big, needs
refactoring.