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