| Commit message (Collapse) | Author | Age | Files | Lines |
| |\
| |
| |
| |
| | |
Implement Introduce2 tor cell
See merge request tpo/core/arti!736
|
| | |
| |
| |
| |
| | |
Reuse the same Introduce inner body implementation
of Introduce1.
|
| |/
|
|
|
|
|
|
|
|
|
|
| |
As a matter of good crypto practice, we shouldn't use
short-circuiting checks to compare keys or key-like objects, since
the amount of time taken by those checks can leak information about
their inputs.
I don't think it's actually _necessary_ to use a constant-time
operation in this case, but let's establish the precedent.
This is a follow-up to !724.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
These have the unit in the type. Putting that in the field name too
is otiose.
|
| |
|
|
|
| |
This allows test cases to describe precisely the contents of the
negotiation cell ought to be generated.
|
| |
|
|
|
| |
As proposed in
https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/77
|
| |
|
|
|
| |
This gets rid of some random hardcoded literals. We're going to want
to reuse this, too.
|
| |
|
|
|
|
|
|
| |
We don't really want the caller to pass ignored timeout parameters.
And this makes more semantic sense.
The stop constructor uses zero, which is what C Tor does. See
https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/76
|
| |
|
|
|
|
|
|
| |
This will be convenient for managing when to send these negotiation
messages.
While we're here, edit the comment to explain how this is (going to
be) used.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
It was based on the old `Writeable` API.
|
| |\
| |
| |
| |
| | |
Implement ESTABLISH_INTRO relay cell
See merge request tpo/core/arti!626
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Revise tor_bytes::Writer::write to return a Result.
Closes #513
See merge request tpo/core/arti!623
|
| | | |
| | |
| | |
| | | |
Also, stop using "expect" and "assert!" to check for errors.
|
| | | | |
|
| | | | |
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This comprises four renames:
```
write_onto -> write_onto_infallible
write_into -> write_into_infallible
write -> write_infallible
writer_and_consume -> write_and_consume_infallible.
```
The rest of this branch will be concerned with replacing these
`_infallible` methods with ones that return a `Result`. This is
part of #513.
|
| |/
|
|
| |
Apropos clippy complaint.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements a higher-level API for the ntor v3 handshake, in line
with that exposed by the ntor handshake. It does not, however, use the
existing `ClientHandshake` trait, due to fundamental differences in the
handshakes (namely, that the v3 handshake can include some additional
extra extension data).
Currently, the higher-level API assumes circuit extension, and copies
the (undocumented!) magic verification string from c-tor that indicates
this usage.
A rudimentary set of functions for serializing and deserializing
extensions to be sent with the handshake is also included, implementing
the protocol in proposal 332 § A.2. Currently, it only implements the
congestion control extensions specified in proposal 324 § 10.3.
part of arti#88
|
| |\
| |
| |
| |
| | |
Fix clippy nightly again
See merge request tpo/core/arti!603
|
| | |
| |
| |
| | |
Update all lint blocks
|
| |/ |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
According to doc/Errors.md, and in keeping with current best
practices, we should not include display an error's `source()` as
part of that error's display method. Instead, we should let the
caller decide to call source() and display that error in turn.
Part of #323.
|
| |
|
|
|
|
|
|
|
|
| |
This eliminates the possibility of writing the bug of failing to call
`should_be_exhausted`.
As per this discussion
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/572#note_2811464
Fixes #498
|
| |
|
|
|
| |
This does away entirely with `wire_addr_len`, which recapitulates the
length calculation.
|
| |\
| |
| |
| |
| | |
return nodata instead of servfail in some instances
See merge request tpo/core/arti!564
|
| | | |
|
| | | |
|
| |/ |
|
| |
|
|
| |
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After changes to the prop339, the domain name in an Address can only be
255 bytes max and can NOT contain nul byte(s).
Unit tests had to be modified to accept this change:
- Centralise msg_ip_address
- Add currently-passing tests for address length
- Test counted address length longer than type wants
Related to #463
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
| |
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
| |
Related to #463
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
| |
Decoding and encoding of the DATAGRAM cell from proposal 339.
Related to #463.
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
| |
Decoding and encoding implemented according to proposal 339.
Related to #463
|
| |
|
|
|
|
|
|
|
| |
Decoding and encoding is implemented according to proposal 339
specifications.
Related to #463
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
| |
From running add_warning, with manual picking of the right
hunks/lines.
|
| |
|
|
|
|
| |
This was the result of:
maint/add_warning crates/*/src/{lib,main}.rs
and then manually curating the results.
|
| |
|
|
|
| |
This does involve unwrap, but of course that can't fail unless the
formats fail, which would already panic (that's implied by format!).
|
| |
|
|
|
| |
Remove all `use` statements for `TryFrom` and `TryInto`. These are
now redundant in Rust 2021.
|