summaryrefslogtreecommitdiff
path: root/crates/tor-proto
Commit message (Collapse)AuthorAgeFilesLines
* Bump minor versions in preparation for releaseNick Mathewson2023-12-041-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This crate is new, and gets a bump to 0.1.0. tor-log-ratelim This crate had a breaking change: tor-persist tor-llcrypto had a breaking change. These crates _are_ tor-llcrypto, or (transitively) depend on it. I am assuming that they all re-expose something from it in a way that matters: tor-llcrypto tor-bytes tor-hscrypto tor-socksproto tor-checkable tor-cert tor-linkspec tor-cell tor-proto tor-netdoc tor-consdiff tor-netdir tor-chanmgr tor-ptmgr tor-guardmgr tor-circmgr tor-dirclient tor-dirmgr tor-keymgr tor-hsclient tor-hsservice tor-hsrproxy arti-client arti-rpcserver arti-hyper
* Bump patchlevel versions in preparation for releaseNick Mathewson2023-12-041-5/+5
| | | | | | | | | | | | | | | These crates had backward-compatible changes, and get a patchlevel bump only: fs-mistrust tor-error tor-config tor-rtcompat tor-rtmock This crate exposes no non-CLI APIs, and gets a patchlevel bump only: arti
* Merge branch 'msrv-bump-1.70' into 'main'Ian Jackson2023-11-301-1/+1
|\ | | | | | | | | Increase our MSRV to 1.70 See merge request tpo/core/arti!1773
| * In every crate, change rust-version to 1.70.Nick Mathewson2023-11-281-1/+1
| |
* | Merge branch 'semver-breaking-upgrade-of-the-daleks' into 'main'Nick Mathewson2023-11-293-15/+14
|\ \ | | | | | | | | | | | | | | | | | | Convert to the latest versions of dalek-cryptography Closes #808 See merge request tpo/core/arti!1767
| * | Remove RngCompatExt.Nick Mathewson2023-11-292-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code was needed with the old version of dalek-cryptography, which wasn't compatible with up-to-date versions of the `rand` crate(s). But now that we've upgraded, we can drop this. (We could have left it around and deprecated it, but we are already making a breaking change to tor-llcrypto by upgrading dalek-cryptography.)
| * | Convert to the latest versions of dalek-cryptographyNick Mathewson2023-11-293-12/+12
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main changes that we have to adjust for are as follows: * In x25519-dalek: * `StaticSecret` is now behind a feature. * `StaticSecret::new` is deprecated in favor of `StaticSecret::random_from_rng`. * StaticSecret no longer does its own clamping. * In ed25519-dalek: * `SecretKey` has (in effect) been renamed to `SigningKey`. The name `SecretKey` is now an alias for `[u8; 32]`. * `SigningKey` is effectively a keypair, since it contains a public key as well. * `PublicKey` has been renamed to `VerifyingKey`. * The functions to extract a signing key and verifying key have been renamed as you might expect. * `ExpandedSecretKey` has been moved to `hasmat` and no longer implements `sign`. * `ExpanededSecretKey` now has as its elements a scalar and a hash prefix. * Various functions that took `&[u8]` now take `&[u8; N]`. * We no longer need a wrapper for older versions of rand. There is a single test in tor-keymgr that does not pass. I've marked it as ignore for now, in hopes that @gabi-250 can help me figure it out. This closes #808. There are several changes I want to make before we merge, however. They are marked with TODO DALEK.
* | debug log: Downgrade circuit lifecycle messages to traceIan Jackson2023-11-291-4/+4
| | | | | | | | | | | | This makes it possible to see the wood for the trees. This may be controversial, but I think it's an improvement.
* | Downgrade some messages to traceIan Jackson2023-11-292-2/+2
|/ | | | | These messages are very verbose and I doubt anyone will want them, usually, even when debugging.
* Fix 'target' in doc comment for create_firsthop_ntorJim Newsome2023-11-271-1/+1
|
* Test extend_ntor_v3Jim Newsome2023-11-271-10/+33
|
* Parameterize circuit-extension test by handshake typeJim Newsome2023-11-271-55/+68
|
* Add `ClientCirc::extend_ntor_v3`Jim Newsome2023-11-273-0/+79
|
* tor-proto::circuit::reactor: handle server auxiliary handshake dataJim Newsome2023-11-271-10/+81
|
* Circuit reactor: test ntor-v3 "create"Jim Newsome2023-11-271-43/+101
|
* Add NtorV3SecretKey::generate_for_test and NtorV3SecretKey::newJim Newsome2023-11-271-39/+36
|
* Add PendingClientCirc::create_firsthop_ntor_v3Jim Newsome2023-11-272-0/+44
|
* Add Reactor::create_firsthop_ntor_v3Jim Newsome2023-11-271-0/+50
|
* NtorV3PublicKey: make fields pub(crate), as for NtorPublicKeyJim Newsome2023-11-271-2/+2
|
* Use HandshakeType in Extend2 and CircuitExtender::beginJim Newsome2023-11-271-2/+2
|
* Merge remote-tracking branch 'public/hs_begin'Nick Mathewson2023-11-161-0/+1
|\
| * hsrproxy: Send back DONE reasons.Nick Mathewson2023-10-231-0/+1
| | | | | | | | | | This is in keeping with the behavior of C tor, and of torspec!179.
* | Merge branch 'strip_onion_begin' into 'main'Alexander Færøy2023-11-153-1/+40
|\ \ | | | | | | | | | | | | | | | | | | Send less information in onion service BEGIN messages Closes #1077 See merge request tpo/core/arti!1738
| * | Send less information in onion service BEGIN messagesNick Mathewson2023-11-153-1/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | While looking for differences, we found that C tor always omits the flags and the hostname from a BEGIN message sent on an onion service circuit. In torspec!179, we specified that behavior. This patch brings arti into conformance. Closes #1077.
* | | Merge branch 'upgrades-20231115' into 'main'gabi-2502023-11-151-1/+1
|\ \ \ | |/ / |/| | | | | | | | Upgrade a couple of dependencies See merge request tpo/core/arti!1736
| * | Upgrade to itertools 0.12.0Nick Mathewson2023-11-151-1/+1
| | |
* | | tor-proto: make ClientHandShake and ServerHandshake generic over aux dataJim Newsome2023-11-156-164/+112
| | |
* | | Add NtorV3Server and implement ServerHandshake for itJim Newsome2023-11-151-29/+43
| | |
* | | ServerHandshake: extend to support ntorv3 extensionsJim Newsome2023-11-154-20/+130
| | |
* | | NtorV3Client: implement ClientHandshakeJim Newsome2023-11-151-7/+13
| | |
* | | ClientHandshake: extend to support ntorv3 extensionsJim Newsome2023-11-154-22/+66
| | |
* | | NtorV3Client: take a slice instead of a vec of extensionsJim Newsome2023-11-151-5/+3
| | |
* | | ntor_v3: replace `impl digest::XofReader` with `NtorV3XofReader`Jim Newsome2023-11-151-15/+20
| | |
* | | CircuitHandshake::Ntor::ed_identity clarify doc-commentJim Newsome2023-11-151-2/+2
| | | | | | | | | | | | | | | Use consistent phrasing when describing the two key fields to make it clear they're referring to the same relay.
* | | hs_ntor: fix comment typo INTROUDCE1Jim Newsome2023-11-151-1/+1
|/ /
* | circuit: On SendMsgAndInstallHandler, tolerate None handlerNick Mathewson2023-11-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Previously it was possible for `handler` to be None only when `msg` was also None, which would make SendMsgAndInstallHandler into a no-op. Now, if `msg` is present but `handler` is absent, we use the previously installed handler, which I think was our intention. Without this patch, `Conversation::send_message` simply won't work. Fixes #1085.
* | circuit::reactor: Remember that meta_handler is Send.Nick Mathewson2023-11-021-2/+2
| | | | | | | | | | | | (We already require that it is Send when the client gives it to us in circuit.rs, but we had previously forgotten that when we stored it in the Reactor.)
* | Remove semver.md files from arti 1.1.10Nick Mathewson2023-10-311-3/+0
| |
* | Merge branch 'semver-bumps' into 'main'Nick Mathewson2023-10-311-8/+8
|\ \ | | | | | | | | | | | | Update versions for today's releases. See merge request tpo/core/arti!1716
| * | Patch version bumps in crates without breaking changesNick Mathewson2023-10-311-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``` These crates have new APIs: tor-async-utils ADDED tor-config ADDED tor-hscrypto ADDED tor-netdoc ADDED, plus BREAKING-experimental. These crates have patch-level changes only: tor-netdir (bugfix only). (re-exposes netdoc) arti-rpcserver (tweaks only, uses nothing that broke.) arti 1.1.10, no stable public APIs. ```
| * | Minor version bumps in crates with breaking changes.Nick Mathewson2023-10-311-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``` tor-basic-utils BREAKING tor-rtmock BREAKING. tor-cert BREAKING tor-cell BREAKING tor-proto BREAKING: re-exposes cell. (Also BREAKING-experimental) tor-chanmgr BREAKING: Re-exposes proto. tor-ptmgr BREAKING: re-exposes tor-chanmgr tor-guardmgr BREAKING: re-exposes proto. (Only for ClockSkew I think?) tor-circmgr BREAKING: re-exposes proto tor-dirclient BREAKING tor-hsclient BREAKING, re-exposes proto. tor-hsservice BREAKING, re-exposes proto. tor-hsrproxy BREAKING arti-client BREAKING: re-exposes proto. arti-hyper: BREAKING, re-exposes arti-client. tor-dirmgr Let's assume BREAKING, very high-level. tor-keymgr BREAKING, but experimental. ```
* | | Precisely cfg-decorate a constantIan Jackson2023-10-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Peraonally I would prefer | #![cfg_attr(not(all(feature = "full", feature = "experimental")), | allow(dead_code))] but I think that is almost certainly controversial. See tpo/core/arti#704.
* | | Add cfg_attr allow(unused_imports) to two cratesIan Jackson2023-10-311-0/+6
|/ / | | | | | | | | As per this comment, and preceding discussion https://gitlab.torproject.org/tpo/core/arti/-/issues/1060#note_2959187
* | Add a caret_int HandshakeType for HTYPE constantsJim Newsome2023-10-263-4/+9
| |
* | Change `CircId` to never be zeroJim Newsome2023-10-256-59/+94
| | | | | | | | | | | | | | | | | | | | This changes the internal representation to be `NonZeroU32` instead of just `u32`. Various places where a circuit ID is optional now use `Option<CircId>`. Fixes a bug in `CircIdRange::sample` that would previously return a circuit ID of 0, when the rng returned 0x8000_0000 for a low range.
* | Convert StreamId to NonZeroU16Jim Newsome2023-10-257-73/+82
|/
* Fix rustdoc link warnings/errors.Nick Mathewson2023-10-201-1/+1
|
* Merge branch 'tricky_terminate' into 'main'Nick Mathewson2023-10-195-181/+151
|\ | | | | | | | | | | | | Refactor the stream-closing logic in tor-proto Closes #1065 See merge request tpo/core/arti!1681
| * proto: Revise the behavior of IncomingStream::discard().Nick Mathewson2023-10-194-22/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | Because dropping a `StreamTarget` causes the circuit reactor to send an End, the previous do-nothing implementation of `discard()` wasn't sufficient to cause the request to be ignored without sending an End. This commit modifies our "close pending stream" behavior to only optionally send an End message. To avoid confusion, I'm using a new `CloseStreamBehavior` enum rather than an `Option<End>`, since we had previously used `None` in some cases to indicate a default (misc) end message.
| * IncomingStream:: flatten IncomingStreamInner.Nick Mathewson2023-10-191-13/+11
| |