Commit Graph

6628 Commits

Author SHA1 Message Date
Nick Mathewson 6c8ac2dec8 Merge branch 'cl-more' into 'main'
changelog: add links for 1.1.5 changelog

See merge request tpo/core/arti!1209
2023-06-01 12:29:35 +00:00
Nick Mathewson 4875232b82 changelog: Minor cleanups 2023-06-01 07:56:27 -04:00
Nick Mathewson 865902e989 changelog: add links for 1.1.5 changelog 2023-06-01 07:40:30 -04:00
Alexander Færøy ef4c20ed01 Merge branch 'changelog' into 'main'
Draft a changelog for 1.1.5

See merge request tpo/core/arti!1207
2023-05-31 19:41:02 +00:00
gabi-250 b5c0366043 Merge branch 'semver_checks_script' into 'main'
New script to run cargo-semver-checks with appropriate options.

See merge request tpo/core/arti!1206
2023-05-31 17:49:08 +00:00
Nick Mathewson af2c3f28fe Draft a changelog for 1.1.5 2023-05-31 12:47:40 -04:00
Nick Mathewson 1f4cd3f389 New script to run cargo-semver-checks with appropriate options.
The options are rather complicated; because we do not want to
subject our experimental features to semver, we need to run generate
JSON rustdoc on our own and then pass that JSON to
cargo-semver-checks.  This in turn requires us to use the same
options that cargo-semver-checks uses, including "RUSTC_BOOTSTRAP".

I've left some TODOs here in places where we will likely want to
improve our code in the future.

See #711.
2023-05-31 10:04:29 -04:00
Nick Mathewson 4b8b137880 Merge branch 'fixup-features' into 'main'
Run fixup-features script and resolve its complaints.

See merge request tpo/core/arti!1205
2023-05-31 12:48:12 +00:00
Nick Mathewson 8d32e1f65f Run fixup-features script and resolve its complaints. 2023-05-31 08:04:10 -04:00
Nick Mathewson 079e19b725 Merge branch 'pre-release-updates' into 'main'
Run "cargo update" in preparation for Thursday release.

See merge request tpo/core/arti!1204
2023-05-30 15:31:15 +00:00
Nick Mathewson 65be721f46 Run "cargo update" in preparation for Thursday release. 2023-05-30 10:37:24 -04:00
Nick Mathewson 6703f3d52a Merge branch 'stream_ctrl' into 'main'
Experimental new stream-ctrl feature

Closes #847

See merge request tpo/core/arti!1198
2023-05-24 20:01:40 +00:00
Nick Mathewson e4758a754e Add "TODO RPC" notes around DataStreamCtrl per review. 2023-05-24 15:25:33 -04:00
Nick Mathewson a397ca77d9 proto: Add stream-status functionality to DataStreamCtrl.
There are some weaknesses and problems here; see TODO notes.
2023-05-24 15:25:33 -04:00
Ian Jackson 14b7fae113 Merge branch 'virtual_conditional' into 'main'
proto: Make PathEntry::Virtual feature-conditional.

See merge request tpo/core/arti!1201
2023-05-24 14:57:24 +00:00
Nick Mathewson 3d4b9aa1b7 Merge branch 'rpc-auth-and-meta' into 'main'
rpc: authentication and basic handle manipulation

See merge request tpo/core/arti!1200
2023-05-24 14:53:29 +00:00
Nick Mathewson 7178ab85eb Merge branch 'real_generational_arena' into 'main'
rpc: Use the real generational-arena crate

See merge request tpo/core/arti!1203
2023-05-24 14:50:20 +00:00
Nick Mathewson 936387efee rpc: Remove downgrade_owned for now
Rationale: Our weak-vs-strong design is a bit confused at the moment
due to concerns about deduplication and  capability semantics.  It's
not clear that a general "change strong to weak" method is
compatible with what we want to provide.
2023-05-24 10:15:56 -04:00
Nick Mathewson 4a9c6fba7d rpc: Disable auth:get_rpc_protocol for now. 2023-05-24 10:15:56 -04:00
Nick Mathewson 9713e8d305 rpc: Implement functionality to remove objects from a session
I've made doing some design choices here:
  * Reserving "rpc" as a prefix for post-authentication
    functionality that is not arti-specific.
  * Declaring these to be methods on the session rather than methods
    on the objects themselves.

There's a problem with defining an API to drop a weak reference; see
comment in code.
2023-05-24 10:15:56 -04:00
Nick Mathewson 15a8644bf7 rpc: fix documentation for methods in Context. 2023-05-24 10:15:56 -04:00
Nick Mathewson a939b19479 rpc: update rpc-meta-draft with new behavior. 2023-05-24 10:15:56 -04:00
Nick Mathewson fef8342be3 rpc: Make the top-level returned object a "session".
This will make it easier to change the semantics of what exactly we
return, whether it has to be/contain a client, whether you can use
it to look up all the live objects, &etc.
2023-05-24 10:15:56 -04:00
Ian Jackson 642dc10907 Merge branch 'cookie_in_est_intro' into 'main'
cell: Make EstablishRendezvous contain a RendCookie.

See merge request tpo/core/arti!1202
2023-05-24 13:09:13 +00:00
Nick Mathewson 45b4845f3a rpc: Remove fake_generational_arena
Now that generation-arena has merged [@diziet's patch] to clarify
their license, we no longer need to disable it.

[@diziet's patch]: https://github.com/fitzgen/generational-arena/pull/56
2023-05-23 13:58:08 -04:00
Nick Mathewson e5fa42e1c7 maint/check_license: Make MPL-2.0 into an allow-list
Previously we allowed this license unconditionally.  But because of its
non-self-enacting nature, we need the actual notice from its "exhibit A"
to appear somewhere that says that it applies to all the relevant code.

Therefore, we shouldn't take new MPL-2.0 dependencies without
hand-checking them.  (I am tentatively allowing option-ext, though,
since we already have an indirect dependency on that crate via
`directories`.)

For more info, see https://gitlab.torproject.org/tpo/core/arti/-/issues/845
2023-05-23 13:51:51 -04:00
Nick Mathewson 24d67594d7 cell: Make EstablishRendezvous contain a RendCookie. 2023-05-23 13:33:07 -04:00
Nick Mathewson 278e2fea79 Merge branch 'socks-read-fix' into 'main'
Fix a local-only CPU DoS bug.

Closes #861

See merge request tpo/core/arti!1196
2023-05-23 15:28:00 +00:00
Nick Mathewson 03c81ae5aa proto: Make PathEntry::Virtual feature-conditional.
This fixes a warning when building tor-proto without the
`rpc-common` feature.
2023-05-23 10:59:37 -04:00
Nick Mathewson 9225b3f89d Merge branch 'shadow-v3' into 'main'
shadow tests: bump to shadow 3.0

See merge request tpo/core/arti!1199
2023-05-23 14:49:30 +00:00
Nick Mathewson 03cb91012d Fix a local-only CPU DoS bug.
Previously, there was a bug in the way that our code used our SOCKS
implementations.  If the buffer used for a SOCKS handshake became full
without completing the handshake, then rather than expanding the buffer
or closing the connection, our code would keep trying to read into the
zero-byte slice available in the full buffer forever, in a tight loop.

We're classifying this as a LOW-severity issue, since it is only
exploitable by pluggable transports (which are trusted) and by
local applications with access to the SOCKS port.

Closes #861.

Fixes TROVE-2023-001.

Reported-By: Jakob Lell <jakob AT srlabs DOT de>
2023-05-23 10:48:27 -04:00
Nick Mathewson 0993672cb2 rpc: Implement auth:query. 2023-05-23 09:08:32 -04:00
Nick Mathewson 2798dade00 rpc: Implement the auth:get_rpc_protocol method. 2023-05-23 08:58:03 -04:00
Nick Mathewson d745e2d866 rpc: move existing auth code to new module. 2023-05-23 08:46:19 -04:00
Ian Jackson b15ca0273b Merge branch 'thanks_trailer' into 'main'
maint/thanks: Include some git trailers in acknowledgments

See merge request tpo/core/arti!1194
2023-05-23 12:33:15 +00:00
Ian Jackson 7e0660a8ab Merge branch 'misc' into 'main'
Fix misc regressions in nascent HS client code

See merge request tpo/core/arti!1197
2023-05-23 12:17:34 +00:00
Ian Jackson 5ba7f31c1d tor-hsclient: Mockable: Do concrete calls with UFCS
Method dispatch rules mean that if the receiver type of the actual
function changes, `self.call()` can turn into a purely-recursive call
which overflows the stack.

Async Rust doesn't have the usual warning for this situation :-(.

UFCS is clumsier but doesn't have that problem because it involves
much less magical dispatch.  Instead of generating a recursive call
which overflows the stack, it fails to compile.
2023-05-23 12:47:33 +01:00
Ian Jackson 79b9a26df0 tor-hsclient: Fix MockableClientCirc for ClientCirc changes
ClientCirc::begin_dir_stream now takes Arc<Self>.  Method resolution
rules mean that this code would just recurse, leading to a stack
overflow.
2023-05-23 12:47:33 +01:00
Jim Newsome d282b009bd shadow-ci: check for successful transfers on bridge-client as well 2023-05-22 13:41:52 -05:00
Jim Newsome c2df3b3992 shadow ci: bump tgen 2023-05-22 13:40:44 -05:00
Jim Newsome 893ea38100 shadow ci: bump shadow 2023-05-22 13:40:44 -05:00
Nick Mathewson 0df0cf4250 proto: Create a `DataStreamCtrl` type.
The idea here is that we want to make DataStream visible to the
RPC system without requiring that the RPC session hold the
DataStream itself (or the Reader, or the Writer).  We could solve
this problem by making _all_ the state in the DataStream shared,
but that would introduce unnecessary extra locking in our critical
path.

Instead we're creating the notion of a "control handle" that lets
you manage and observe a stream without actually owning the stream.

Right now the only supported functionality is asking for the
stream's circuit.

Part of #847
2023-05-22 11:27:44 -04:00
Ian Jackson 1fc1c269c3 Fix a docs reference to refer to HsClientIntroAuthKeypair
Fixes warning from
  cargo -o doc --document-private-items --all-features --workspace

This was evidentlhy overlooked during recent replacement of unescorted
private keys in the code.
2023-05-22 14:30:16 +01:00
Nick Mathewson 0765412fc8 proto: Add a new experimental stream-ctrl feature.
(It doesn't do anything yet. It may eventually become always-on.
But for now let's make this API optional.  Part of #847)
2023-05-22 09:07:03 -04:00
Nick Mathewson b55a3ade33 tor-proto: Move a comment in Cargo.toml 2023-05-22 09:04:44 -04:00
Ian Jackson d6f7acc5b9 Merge branch 'misc_upgrades' into 'main'
Upgrade miscellaneous dependencies

See merge request tpo/core/arti!1195
2023-05-22 12:44:20 +00:00
Nick Mathewson 407a928022 thanks: Also acknowledge Suggested-By 2023-05-22 07:58:54 -04:00
Nick Mathewson 9848155f59 Upgrade notify dependency to 6.0 2023-05-22 07:54:10 -04:00
Nick Mathewson a179d10ad4 Upgrade async-compression dependency to 0.4.0. 2023-05-22 07:52:18 -04:00
Nick Mathewson 16c992ecd3 Upgrade memmap2 dependency to 0.6.1. 2023-05-22 07:51:22 -04:00