Commit Graph

8112 Commits

Author SHA1 Message Date
Nick Mathewson 006efbffbc start a test for microdesc parsing. 2020-05-18 14:41:23 -04:00
Nick Mathewson 2adbcf1a79 tor-netdoc: add a peek() method to util::Pausable. 2020-05-16 10:46:06 -04:00
Nick Mathewson a8be828beb Implement microdescriptor parsing.
Additionally, move and refactor related types to reduce friction for
microdescriptor parsing implementation.
2020-05-15 19:25:40 -04:00
Nick Mathewson fa064717b3 tor-netdoc: Move RelayFamily into its own module. 2020-05-15 16:50:32 -04:00
Nick Mathewson 86894926aa tor-proto: use caret_int!() for cell and relay commands. 2020-05-15 16:27:03 -04:00
Nick Mathewson 085a8250e7 tor_cert: use caret_int!() to make real types for cert elements 2020-05-15 16:07:02 -04:00
Nick Mathewson 1bb564024c Add a new caret_int!() macro for use with integer-wrapping types
Unlike caret_enum!, these types are for use with things like cell
commands or certificate types, where the entire space of integer
values is possible, and only some are recognized.
2020-05-15 15:40:58 -04:00
Nick Mathewson 8f20c273cf tor-netdoc: extract fingerprint logic from routerdesc.rs 2020-05-15 14:40:53 -04:00
Nick Mathewson 84fd65fb85 netdoc: Improve parsing implementation for RelayFamily. 2020-05-15 14:06:22 -04:00
Nick Mathewson c1d6a74756 netdoc: Relax error types that can be used when parsing. 2020-05-15 14:01:50 -04:00
Nick Mathewson 0427abcee2 netdoc: teach MaybeItem about parse_args_as_str().
This simplifies a couple of places in routerdesc parsing.
2020-05-15 13:44:53 -04:00
Nick Mathewson ebfeefeba8 tor-netdoc: Extract family parsing into its own function. 2020-05-15 13:34:45 -04:00
Nick Mathewson b19d480558 Extract RelayPlatform parsing. 2020-05-15 13:22:39 -04:00
Nick Mathewson c7d0d27754 netdoc: get positions right in version parsing. 2020-05-15 13:22:15 -04:00
Nick Mathewson 60adff1fd7 netdoc: use improved API for parsing ed25519 certificates. 2020-05-15 11:49:49 -04:00
Nick Mathewson 332b9de542 netdoc: use new router object parsing API for RSA public keys. 2020-05-15 11:20:57 -04:00
Nick Mathewson f6dd702316 Netdoc: better parsing for objects.
If I'm right this will let us simplify our code for parsing things
from directory objects by a lot.
2020-05-15 11:18:04 -04:00
Nick Mathewson 9b581588d6 Remove 'idx' field from BadArgument.
Having byte-level positions means we don't need to complain about
particular arguments.
2020-05-15 10:37:29 -04:00
Nick Mathewson d82cb7e5d1 netdoc: remove ArgError. 2020-05-15 08:47:32 -04:00
Nick Mathewson dea1530492 netdoc: Make args_as_vec() non-public.
It returns a Ref, and that's kinda implementation-dependent.
2020-05-13 17:25:11 -04:00
Nick Mathewson 4f4bc52e36 Improve reported positions of parsing errors. 2020-05-13 17:17:56 -04:00
Nick Mathewson b42f91b591 netdoc: remove the Item::off field as redundant
Now that we are okay with using slice offset pointer math, we can
remove the 'off' field from Item entirely.
2020-05-13 16:09:16 -04:00
Nick Mathewson 9443fc7690 netdoc: rename Position to Pos.
We use this type a lot, so let's give it a short name.
2020-05-13 13:52:53 -04:00
Nick Mathewson 9321e7acd9 netdoc: use a more flexible error-position type based on raw pointers
Astonishingly, this is safe, though I wish that it were impossible
to use mismatched strings.
2020-05-13 13:48:57 -04:00
Nick Mathewson 26079d66e4 netdoc: Add an "at()" method to replace an error's location. 2020-05-13 13:00:57 -04:00
Nick Mathewson 598ea96911 routerdesc: enforce position of identity-ed25519. 2020-05-12 08:14:17 -04:00
Nick Mathewson 9c62d15846 tor-proto: Simplify ct::lookup API. 2020-05-10 12:10:16 -04:00
Nick Mathewson 8d40caf8be One more disclaimer in the README 2020-05-09 16:38:12 -04:00
Nick Mathewson aea1be6674 improve the README a little 2020-05-09 16:36:33 -04:00
Nick Mathewson 240badb20b Document most of tor-proto
(except for the worst parts that need refactoring the most)
2020-05-09 16:25:17 -04:00
Nick Mathewson 11abdcbf3e tor-proto: Fix a logic error in KDF-TOR implementation. 2020-05-09 14:01:48 -04:00
Nick Mathewson 84ac61b5d4 Note a type that should get moved some day 2020-05-09 13:35:58 -04:00
Nick Mathewson 7ec2254634 tor-netdoc: require documentation, and fill in final missing docs 2020-05-09 13:34:59 -04:00
Nick Mathewson 5d3f13e6e7 Netdoc: allow doc comments and visibility modifier in decl_keyword! 2020-05-09 13:31:29 -04:00
Nick Mathewson 73752fb647 netdoc: document routerdoc.rs 2020-05-09 13:29:49 -04:00
Nick Mathewson bf19811d22 Netdoc: remove dead code or annotate it as allowed. 2020-05-09 13:08:31 -04:00
Nick Mathewson 080667da37 netdoc: Document rules.rs, and refactor slightly. 2020-05-09 11:54:21 -04:00
Nick Mathewson c739c2e424 netdoc: Improved error type for Section::GetRequired. 2020-05-09 11:30:02 -04:00
Nick Mathewson abe9200eea Make the members of TokenFmt private, and simplify the API in the process. 2020-05-09 11:30:02 -04:00
Nick Mathewson 56694d4fc8 Move Item verification to be a method of TokenFmt. 2020-05-09 11:30:02 -04:00
Nick Mathewson d9513492fe Move MaybeItem into tokenize.rs 2020-05-09 11:30:02 -04:00
Nick Mathewson 624dca4056 Document parse.rs in tor-netdoc, and note things to move or fix 2020-05-09 11:30:02 -04:00
Nick Mathewson 07d6cd956a Fix a logic error when finding position of unexpected keyword.
This appears to be a bad copy-paste.
2020-05-09 11:30:02 -04:00
Nick Mathewson 07e41734ec Document more of 'netdoc', including errors. 2020-05-09 11:30:02 -04:00
Nick Mathewson c4d0f59e7d netdoc and version docs 2020-05-08 22:32:17 -04:00
Nick Mathewson c65c40170d clean up tor-cert documentation a little. 2020-05-08 22:32:17 -04:00
Nick Mathewson 671a266e13 tor-bytes: add the missing documentation 2020-05-08 22:32:17 -04:00
Nick Mathewson 641576aa44 Use links for traits in llcrypto docs 2020-05-08 22:32:17 -04:00
Nick Mathewson f24ddf0682 Upgrade to a modern version of "sha-1".
Apparently the "sha1" crate doesn't implement the RustCrypto
API, but the "sha-1" crate does.
2020-05-08 22:32:17 -04:00
Nick Mathewson 75a1269429 make id field in RSAIdentity private 2020-05-08 22:32:17 -04:00