Nick Mathewson
9742f3ac42
Netdoc: tweak definition for keywords to accommodate annotations
...
The macro can now define annotations that don't count as regular
keywords. Additionally, the Keyword trait is now tweaked to take
advantage of the fact that every Keyword is Copy.
2020-05-27 13:09:22 -04:00
Nick Mathewson
75d24e6742
llcrypto: test vectors for sha2
2020-05-21 13:27:48 -04:00
Nick Mathewson
56b9e3fbc6
netdoc: exit an object if we encounter non-base64.
...
This way, an unterminated base64 object doesn't "eat" the whole rest
of something we're trying to parse.
2020-05-20 13:04:28 -04:00
Nick Mathewson
0e40748e4d
netdoc: tokenizer should always consume bytes if they exist.
...
Also document that it always consumes a positive integer number of
lines.
This is part of an effort to improve error recovery.
2020-05-20 12:24:31 -04:00
Nick Mathewson
0f5915915b
netdoc: Teach tokenizer about annotations.
...
I'm not sure that annotations are a feature I want to keep
long-term, but for now it would be useful if this code can also read
Tor's file formats for network directories.
2020-05-19 14:06:19 -04:00
Nick Mathewson
c427b26fe7
netdoc: Add convenience methods for pausing iterators
2020-05-19 12:14:13 -04:00
Nick Mathewson
8468c8ec49
netdoc: move keyword into Item type.
...
This saves us from having to check specific strings in most cases.
2020-05-19 12:01:06 -04:00
Nick Mathewson
e3d68d6db6
netdoc: Extract keyword into its own file.
2020-05-19 11:43:15 -04:00
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