Commit Graph

6642 Commits

Author SHA1 Message Date
Nick Mathewson 618ed48cea hsclient: Create a CircTarget from an IntroPointDesc.
The main body of this function is written so that we can later use
it to create a CircTarget from an INTRODUCE2 message.
2023-06-07 07:55:45 -04:00
Nick Mathewson 205b6d176c netdir, netdoc: Add accessors for protocol version status.
The consensus includes a listing for clients and for relays,
saying which protocol versions are _required_ for participation on
the network, and which versions are _recommended_.  We have been
parsing this, but not yet exposing it.

This commit adds accessors to expose it, since we'll need that in
order to create CircTargets for introduction points and rendezvous
points.
2023-06-06 09:06:01 -04:00
Ian Jackson 9a30d76ea6 hsdesc: Add minimal set of accessors for HsDesc and IntroPointDesc 2023-06-05 19:33:31 +01:00
Ian Jackson 8382927080 hsdesc docs: Don't imply that a thing has been done, which hasn't yet 2023-06-05 19:20:45 +01:00
Ian Jackson fa324f76de hsdesc docs: Use the definite article
These are (I hope) the only key matching the description.  If they're
not, the description needs to be expanded.
2023-06-05 19:20:13 +01:00
Ian Jackson 84e0ef2531 Merge branch 'cargo-audit-ignore' into 'main'
maint/cargo-audit: Ignore RUSTSEC-2023-0040 (the users crate is unmaintained)

See merge request tpo/core/arti!1217
2023-06-05 11:26:02 +00:00
Gabriela Moldovan 54120b37bd
maint/cargo-audit: Ignore RUSTSEC-2023-0040 (the users crate is unmaintained)
Signed-off-by: Gabriela Moldovan <gabi@torproject.org>
2023-06-05 11:52:06 +01:00
Nick Mathewson 469f62a983 Remove semver.md files from 1.1.5 2023-06-01 14:08:24 -04:00
Ian Jackson 254d4c93a7 Merge branch 'bump-versions-v115' into 'main'
Bump crate versions in preparation for v1.1.5 release.

See merge request tpo/core/arti!1211
2023-06-01 17:32:41 +00:00
Nick Mathewson f2b08444c6 Merge branch 'one_more_cl_msg' into 'main'
changelog: mention fallback list update.

See merge request tpo/core/arti!1212
2023-06-01 14:54:12 +00:00
Nick Mathewson 03ec7bc80e changelog: mention fallback list update. 2023-06-01 10:11:28 -04:00
Nick Mathewson ee75b37033 Merge branch 'fallbackdir-2023-06-01' into 'main'
fallbackdir: Update list generated on June 01, 2023

See merge request tpo/core/arti!1210
2023-06-01 14:06:50 +00:00
Nick Mathewson daf5ecc153 Bump crate versions in preparation for v1.1.5 release.
Generated with the following commands:

```
cargo set-version --bump minor -p tor-cell
cargo set-version --bump minor -p tor-linkspec
cargo set-version --bump minor -p tor-proto
cargo set-version --bump minor -p tor-netdoc
cargo set-version --bump minor -p tor-circmgr

cargo set-version --bump patch -p tor-cert
cargo set-version --bump patch -p tor-basic-utils
cargo set-version --bump patch -p tor-rpcbase
cargo set-version --bump patch -p tor-llcrypto
cargo set-version --bump patch -p tor-hscrypto
cargo set-version --bump patch -p tor-checkable
cargo set-version --bump patch -p tor-async-utils
cargo set-version --bump patch -p caret
cargo set-version --bump patch -p fs-mistrust
cargo set-version --bump patch -p safelog
cargo set-version --bump patch -p retry-error
cargo set-version --bump patch -p tor-error
cargo set-version --bump patch -p tor-config
cargo set-version --bump patch -p tor-events
cargo set-version --bump patch -p tor-units
cargo set-version --bump patch -p tor-rtcompat
cargo set-version --bump patch -p tor-rtmock
cargo set-version --bump patch -p tor-protover
cargo set-version --bump patch -p tor-bytes
cargo set-version --bump patch -p tor-socksproto
cargo set-version --bump patch -p tor-consdiff
cargo set-version --bump patch -p tor-netdir
cargo set-version --bump patch -p tor-congestion
cargo set-version --bump patch -p tor-persist
cargo set-version --bump patch -p tor-chanmgr
cargo set-version --bump patch -p tor-ptmgr
cargo set-version --bump patch -p tor-guardmgr
cargo set-version --bump patch -p tor-dirclient
cargo set-version --bump patch -p tor-dirmgr
cargo set-version --bump patch -p tor-hsclient
cargo set-version --bump patch -p tor-hsservice
cargo set-version --bump patch -p arti-client
cargo set-version --bump patch -p arti-rpcserver
cargo set-version --bump patch -p arti-config
cargo set-version --bump patch -p arti-hyper
cargo set-version --bump patch -p arti
cargo set-version --bump patch -p arti-bench
cargo set-version --bump patch -p arti-testing
```
2023-06-01 10:03:05 -04:00
Tor CI Release 3aef515135 fallbackdir: Update list generated on June 01, 2023
Signed-off-by: Tor CI Release <no-email@torproject.org>
2023-06-01 09:41:28 -04:00
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