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
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