Nick Mathewson
136c536123
Mark tor_netdoc::err::Pos as Send and Sync
...
I am about 99% sure this is safe: the pointer that this type
contains is never dereferenced, and is only compared to the bounds
of a string later on.
2020-11-11 10:00:48 -05:00
Nick Mathewson
c440f4d476
Use bitflags crate to represent RouterFlags.
2020-11-11 09:33:53 -05:00
Nick Mathewson
4d24fff9c0
Upgrade dependencies
2020-11-10 12:27:10 -05:00
Nick Mathewson
d9dafa0a28
Add a new circuit-manager crate and move path selection there.
2020-11-02 10:44:31 -05:00
Nick Mathewson
b93e4b76c8
Remove a bunch of dbg! calls.
2020-10-26 14:33:14 -04:00
Nick Mathewson
d3b71bc177
More documentation in tor-netdoc.
2020-10-26 11:51:53 -04:00
Nick Mathewson
8c09981427
Use from_bytes name for Ed25519Identity
2020-10-25 20:32:47 -04:00
Nick Mathewson
f3e1fafca2
Validate master-key-ed25519 field in routerdescs
2020-10-19 09:44:38 -04:00
Nick Mathewson
57637f3644
netdir: don't use relays with NoEdConsensus flag set.
2020-10-19 09:31:36 -04:00
Nick Mathewson
295a791a82
Improvements to Relay type in tor-netdir.
...
Now, a Relay is always valid. This required some changes to the
API: all_relays() has to return a new UncheckedRelay type that might
or might not be valid, and the functions on Relay and ChanTarget
that return ed25519 identities need to return an Ed25519Identity,
not an ed25519::PublicKey.
This change required some new encoding/decoding/conversion functions
on Ed25519Identity.
2020-10-19 09:22:49 -04:00
Nick Mathewson
3798891b36
Calculate digest correctly when microdesc ends with base64 object.
2020-10-19 08:42:35 -04:00
Nick Mathewson
df406f5319
Netdoc: validate objects even on unrecognized items.
2020-10-19 08:09:20 -04:00
Nick Mathewson
6f3d5d061d
portpolicy: note a spec issue
2020-10-19 08:08:38 -04:00
Nick Mathewson
5523134607
Mark must-resolve XXXX issues with "XXXXM3".
...
"M3" is for "milestone 3" -- my target to fix the technical debt
that I think will be bad if we ship even a pre-alpha with it.
These aren't necessarily _all_ must-resolve, but they're all
must-look-at.
Closes #15
2020-10-18 17:38:59 -04:00
Nick Mathewson
32bfeb84eb
Update microdesc parsing: ed25519 keys are no longer optional.
2020-10-18 17:12:47 -04:00
Nick Mathewson
353a4bfb87
Cleanup from prop315 implementation.
...
Most of the fixes here are just removing comments that said "this
isn't technically required but I'm going to pretend it is".
I also made the "protocols" field in microdescs out of its Option<>,
since we're now requiring that.
2020-10-16 16:36:51 -04:00
Nick Mathewson
7a4c1e87ea
Implement proposal 315: make various directory fields required
2020-10-16 16:30:40 -04:00
Nick Mathewson
3408c9ad26
Run "cargo upgrade".
2020-10-15 13:32:02 -04:00
Nick Mathewson
6f75b82ef3
Use Ed25519Identity in microdescriptors.
2020-10-15 12:42:09 -04:00
Nick Mathewson
6b2ba9a16c
Document remaining private members of tor-netdoc.
2020-10-10 16:41:43 -04:00
Nick Mathewson
f8fde02c0b
Document most private items in tor-netdoc.
2020-10-09 18:02:02 -04:00
Nick Mathewson
b845d37b3b
Add routerdesc examples
2020-10-07 13:48:31 -04:00
Nick Mathewson
b3e2086c7b
netdoc: more tests for routerdesc parsing
2020-10-07 13:19:17 -04:00
Nick Mathewson
30f8aead6c
A few more tests in tor-netdoc
2020-10-07 11:34:12 -04:00
Nick Mathewson
0ba8ab9b9a
netdoc: test for signature/key checking func
2020-10-07 10:58:32 -04:00
Nick Mathewson
b371a84a26
mdconsensus: add tests for a few accessors
2020-10-06 15:02:55 -04:00
Nick Mathewson
02e5380a73
tests for some failing cases in mdconsensus
2020-10-06 14:12:43 -04:00
Nick Mathewson
580c1ac567
Tokenize: report accurate positions for more parsing errors
2020-10-02 15:25:28 -04:00
Nick Mathewson
f89283eaa6
microdesc parsing: tests for bad microdescs
2020-10-02 15:24:00 -04:00
Nick Mathewson
ff852df70e
tests and fixes for md content parsing
2020-10-02 14:04:03 -04:00
Nick Mathewson
8c2aae10f7
netdoc: remove some outdated/unused stuff.
2020-10-02 11:21:59 -04:00
Nick Mathewson
1adc6c40fb
authcert: test error recovery.
2020-10-02 10:59:55 -04:00
Nick Mathewson
38685d3cc1
Netdoc: use a more bulletproof pattern to prevent infinite loops
...
Previously our "read a bunch of this kind of document" functions had
a common problem, where they could get into an infinite loop if the
underlying "read this kind of document" function failed without
consuming any tokens.
I _think_ that this error case was unreachable (or else fuzzing
would have found it, right?), but proving that it was unreachable
was a bit fiddly, and I couldn't follow my own arguments about it.
Instead, we just store the position of the reader before we start
reading, and make sure that it has consumed at least some data. If
it hasn't, then we consume and drop a token before advancing to the
next document.
2020-10-02 10:15:14 -04:00
Nick Mathewson
4a1f319ffe
authcert: add tests for several ways certs can fail.
2020-10-02 09:50:47 -04:00
Nick Mathewson
17e82a50c2
authcert: fix an error, and detect mismatched fingerprints
2020-10-02 09:49:27 -04:00
Nick Mathewson
e6ba2ac8ed
netdoc: rename BadVersion to BadTorVersion for clarity
2020-10-01 10:23:22 -04:00
Nick Mathewson
5ff859b89d
improve errors in authcert.rs
2020-10-01 10:21:25 -04:00
Nick Mathewson
a5f382aa61
Remove redundant signature check in authcert parsing.
2020-09-30 18:50:31 -04:00
Nick Mathewson
d4d3e1c3db
More tests on parsing, plus remove dead code.
2020-09-30 18:46:27 -04:00
Nick Mathewson
c4d0ffa859
Start on some parser backend tests
2020-09-30 14:20:01 -04:00
Nick Mathewson
035e0422d9
tokenize: accept base64 with funny linewraps.
2020-09-30 14:19:07 -04:00
Nick Mathewson
9cab4e0f14
More tests for tokenize.rs, with some bugfixes
2020-09-30 09:39:52 -04:00
Nick Mathewson
59c46ec27b
Start on some tests for parse::tokenize.rs
2020-09-29 17:30:48 -04:00
Nick Mathewson
aafef113b3
Add tests for macros module in tor-netdoc.
...
Also improve output for multi-keyword tokens.
2020-09-29 17:02:56 -04:00
Nick Mathewson
91b7c7b874
Tests and minor debugging in tor_netdoc::types::policy
2020-09-29 11:34:07 -04:00
Nick Mathewson
e02cccdf00
More tests for tor_netdoc::types
2020-09-29 10:15:08 -04:00
Nick Mathewson
788e0347cb
Move around the modules inside tor-netdoc.
...
This change just gives them a more logical breakdown into parsing,
documents, and misc other types.
2020-09-29 09:05:17 -04:00
Nick Mathewson
98ab84e774
Rename remaining get_ accessors
2020-09-28 16:13:14 -04:00
Nick Mathewson
9b276e6a5a
tor_cert: rename accessors
2020-09-28 16:01:33 -04:00
Nick Mathewson
05da5a7f73
Rename some identifiers in tor-linkspec.
...
By convention, rust accessor functions don't start with 'get'.
2020-09-28 15:29:39 -04:00