Nick Mathewson
11cd138c74
Fix a security issue (!) in link handshake validation.
...
When making sure that the peer had the right RSA identity, we
were comparing the RSA identity with itself, not with the RSA
identity we expected.
Found via unit testing (!).
2020-10-21 15:37:55 -04:00
Nick Mathewson
29464c4559
Fix comments in tor-cert.
2020-10-21 15:37:05 -04:00
Nick Mathewson
53c27f7956
Infrastructure for testing handshake cert-validation code
2020-10-21 14:48:19 -04:00
Nick Mathewson
48d0984d2f
More tests for handshake connect function
2020-10-21 14:09:20 -04:00
Nick Mathewson
e0344dd78b
Start a basic test for the first part of the handshake.
2020-10-21 14:09:20 -04:00
Nick Mathewson
a94dc1c7f1
LogId test: tolerate concurrent tests.
2020-10-21 14:09:20 -04:00
Nick Mathewson
b528c914ff
Start on some tests for pieces of tor-proto::channel
2020-10-21 12:45:36 -04:00
Nick Mathewson
4bddde1b83
A few coverage-driven tests in tor-cell.
2020-10-21 10:49:04 -04:00
Nick Mathewson
9a9e2fe43b
Specify and test correct handling for bogus netinfo addrs
2020-10-21 10:30:56 -04:00
Nick Mathewson
150ed235c4
Add a fuzzer for our x509_rsa_kludge function.
2020-10-21 10:05:42 -04:00
Nick Mathewson
1316028485
Ed25519 batch verification test.
2020-10-21 09:21:47 -04:00
Nick Mathewson
0cd6e38623
More tests for ed25519identity
2020-10-21 09:06:12 -04:00
Nick Mathewson
bcfbe99d2b
Add a test for Reader::advance
2020-10-21 08:47:20 -04:00
Nick Mathewson
3f3e98d190
Follow API convention about mutable getters.
...
They're supposed to be called field_mut().
2020-10-21 08:12:46 -04:00
Nick Mathewson
743c3167e8
Rename as_message to into_message.
...
According to the API guidelines, "as_" is only for
borrowed->borrowed conversions.
2020-10-21 08:05:33 -04:00
Nick Mathewson
486693115a
Add a close() method for streams
2020-10-20 14:46:59 -04:00
Nick Mathewson
425ee8376b
Add new `terminate()` method to circuits and channels.
...
These aren't called "close" because they're more destructive than
that: they can be called even if other parties are using the circuit
or channel.
This is for arti#21.
2020-10-20 14:28:44 -04:00
Nick Mathewson
c554db9881
Missing file and docs
2020-10-20 13:46:43 -04:00
Nick Mathewson
6e5d248418
Add a TODO for register_meta_handler API
2020-10-20 13:41:34 -04:00
Nick Mathewson
4f567e4a94
Work on closing flooding-based side-channels
...
We need to make sure that we're dropping cells that we don't
recognize or want, so that we can't be flooded with bogus junk.
2020-10-20 13:22:16 -04:00
Nick Mathewson
b0cdd025a1
Add some helpful logs in circuit code.
2020-10-20 12:40:08 -04:00
Nick Mathewson
31cde26138
main.rs: Add a flag for trace-level logs
2020-10-20 11:49:23 -04:00
Nick Mathewson
7ce158ed1e
Add reasonable logging (I hope!) to channel
2020-10-20 11:45:53 -04:00
Nick Mathewson
ebdd2c0318
Test new error type from caret
2020-10-19 18:25:16 -04:00
Nick Mathewson
1dc3fc214a
Implement From, not Into.
...
These traits are inverses of one another, but implementing From is
always preferred since rust 1.41 relaxed the "orphan rules".
2020-10-19 17:40:43 -04:00
Nick Mathewson
16d8b267bc
Resolve remaining XXXXM3 stuff in tor-cell
2020-10-19 14:36:31 -04:00
Nick Mathewson
88a012a9b0
Add assertions for overflow cases in relaycell::msg
2020-10-19 14:25:12 -04:00
Nick Mathewson
3d35f64742
Add assertions for overflow cases in chancell::msg
2020-10-19 14:22:59 -04:00
Nick Mathewson
c7a2efe72b
Add and use remaining CertType values in tor-cert
2020-10-19 14:17:25 -04:00
Nick Mathewson
2bd30f2db3
Use DestroyReason for Truncated messages.
2020-10-19 13:38:15 -04:00
Nick Mathewson
e83d8ec3c2
Turn End reasons into a caret enumeration.
2020-10-19 13:31:46 -04:00
Nick Mathewson
f2ebc94088
Add relay commands for circuit padding.
2020-10-19 13:30:36 -04:00
Nick Mathewson
378aa6d639
Add an enumeration for destroy reasons.
2020-10-19 13:13:55 -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
9d6d26d310
Explain problems with APIs in linkspec::traits.
2020-10-18 21:12:58 -04:00
Nick Mathewson
9c0d2ac20d
Resolve XXXXM3 comments in caret crate
2020-10-18 20:34: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
582cb945e4
More notes in README.md: assumed proposals, stability (non)guarantee
2020-10-18 17:38:28 -04:00
Nick Mathewson
32bfeb84eb
Update microdesc parsing: ed25519 keys are no longer optional.
2020-10-18 17:12:47 -04:00
Nick Mathewson
32c2bc4bc1
Clarify TODOs in tor-protover
2020-10-18 17:06:15 -04:00
Nick Mathewson
0bd6d62951
tor-linkspec: remove a completed TODO
2020-10-18 17:03:11 -04:00
Nick Mathewson
311d060037
Remove a comment about a spec clarification
...
This was fixed as torspec#30
2020-10-18 16:59:45 -04:00
Nick Mathewson
5f4eff6338
Resolve XXXX items in tor-cert crate.
2020-10-18 16:54:51 -04:00
Nick Mathewson
1abd93d696
Clarify kludgey magic in our to_der() function.
2020-10-18 16:50:40 -04:00
Nick Mathewson
bc8a32f618
List supported/unsupported subprotocols in the README
2020-10-18 15:59:45 -04:00