Commit Graph

7761 Commits

Author SHA1 Message Date
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
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