| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| |
|
|
|
| |
These helpers seem potentially broadly useful, and only really
discoverable if they're here.
|
| |
|
|
|
|
|
|
|
|
| |
rustls 0.23.13 introduced a bug that causes `Acceptor::accept` to panic
if the client hello is fragmented (see [RUSTSEC-2024-0399]).
We don't currently use `rustls::server::Acceptor::accept()` anywhere in
arti (that I know of, at least), so I don't believe we're affected.
[RUSTSEC-2024-0399]: https://rustsec.org/advisories/RUSTSEC-2024-0399
|
| |
|
|
| |
The cookie authentication protocol will need these.
|
| |
|
|
| |
(Cookie authentication is described in rpc-cookie-sketch.md)
|
| | |
|
| |
|
|
| |
See doc/dev/rpc-book/src/rpc-connect-sketch.md for details.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a big change across multiple crates since there isn't a good way
to break it up.
This changes the signature of `CfgPath::path` to:
```
pub fn path(&self, path_resolver: &CfgPathResolver) -> Result<PathBuf, CfgPathError> {
```
Making this change means that our global `CfgPathResolver` needs to be
stored in the 'arti-client' library instead of `tor-config-path`, and
must be passed through to anything that calls `path` to expand the
variables.
|
| |
|
|
| |
The options are inspired by the arti cli interface.
|
| | |
|
| |\
| |
| |
| |
| | |
tor-proto: Add benchmarks for cell encryption and decryption
See merge request tpo/core/arti!2608
|
| | | |
|
| | |
| |
| |
| | |
Version 0.15.0 was yanked, which makes cargo-audit unhappy.
|
| | |
| |
| |
| |
| | |
The old code used a shortcut to access the `Figment` directly, but we
need to do the whole config builder thing to be able to parse the toml.
|
| | |
| |
| |
| |
| | |
Also updated other packages to get `CfgPath` directly from
`tor-config-path' instead of 'tor-config'.
|
| |/ |
|
| |\
| |
| |
| |
| | |
New CfgAddr type to represent SocketAddrs in configuration.
See merge request tpo/core/arti!2597
|
| | |
| |
| |
| |
| | |
This type behaves like a variant of `general::SocketAddr`
that allows the Unix variant to be a CfgPath.
|
| | |
| |
| |
| |
| |
| |
| | |
This will enable us to store more than one `K_relaysign_ed` in the
keystore.
Closes #1692
|
| |/
|
|
|
|
|
|
| |
The new `Iso8601TimeSlug` is useful for encoding a timestamp as a `Slug`
(i.e. in a filename).
This is needed, for example, for #1692, to encode a timestamp as key
denotator.
|
| |
|
|
|
|
|
|
| |
I think we should bump the minor version because of the new features,
particularly supporting .onion domains as a client by default, and the
OOM DoS resistance features (#351).
cargo set-version --offline --bump=minor -p arti
|
| |
|
|
|
| |
cargo set-version --bump=patch -p slotmap-careful
cargo set-version --bump=patch -p safelog
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cargo set-version -p tor-async-utils 0.24.0
cargo set-version -p tor-basic-utils 0.24.0
cargo set-version -p tor-bytes 0.24.0
cargo set-version -p tor-cell 0.24.0
cargo set-version -p tor-cert 0.24.0
cargo set-version -p tor-chanmgr 0.24.0
cargo set-version -p tor-checkable 0.24.0
cargo set-version -p tor-circmgr 0.24.0
cargo set-version -p tor-config 0.24.0
cargo set-version -p tor-config-path 0.24.0
cargo set-version -p tor-consdiff 0.24.0
cargo set-version -p tor-dirclient 0.24.0
cargo set-version -p tor-dirmgr 0.24.0
cargo set-version -p tor-error 0.24.0
cargo set-version -p tor-general-addr 0.24.0
cargo set-version -p tor-geoip 0.24.0
cargo set-version -p tor-guardmgr 0.24.0
cargo set-version -p tor-hsclient 0.24.0
cargo set-version -p tor-hscrypto 0.24.0
cargo set-version -p tor-hsrproxy 0.24.0
cargo set-version -p tor-hsservice 0.24.0
cargo set-version -p tor-key-forge 0.24.0
cargo set-version -p tor-keymgr 0.24.0
cargo set-version -p tor-linkspec 0.24.0
cargo set-version -p tor-llcrypto 0.24.0
cargo set-version -p tor-log-ratelim 0.24.0
cargo set-version -p tor-memquota 0.24.0
cargo set-version -p tor-netdir 0.24.0
cargo set-version -p tor-netdoc 0.24.0
cargo set-version -p tor-persist 0.24.0
cargo set-version -p tor-proto 0.24.0
cargo set-version -p tor-protover 0.24.0
cargo set-version -p tor-ptmgr 0.24.0
cargo set-version -p tor-relay-crypto 0.24.0
cargo set-version -p tor-relay-selection 0.24.0
cargo set-version -p tor-rpcbase 0.24.0
cargo set-version -p tor-rtcompat 0.24.0
cargo set-version -p tor-rtmock 0.24.0
cargo set-version -p tor-socksproto 0.24.0
cargo set-version -p tor-units 0.24.0
cargo set-version -p arti-client 0.24.0
cargo set-version -p arti-relay 0.24.0
cargo set-version -p arti-rpc-client-core 0.24.0
cargo set-version -p arti-rpcserver 0.24.0
|
| |
|
|
|
| |
Nothing in the changelog seems concerning. There's an MSRV bump,
but still lower than our own MSRV.
|
| | |
|
| |\
| |
| |
| |
| | |
Extract general::SocketAddr and its unix friends to their own crate.
See merge request tpo/core/arti!2592
|
| | | |
|
| | |
| |
| |
| | |
This is mostly code motion.
|
| | |
| |
| |
| | |
This is a direct move of the `path` module from tor-config.
|
| |/ |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
Move crates to crates to slotmap-careful
Closes #1531
See merge request tpo/core/arti!2530
|
| | | |
|
| | |
| |
| |
| |
| | |
This change will let us start removing the not-entirely-logical
`Rpc.*` variants from tor_error::ErrorKind.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
tor-config: Use a polling watcher on non-windows platforms that don't have inotify.
Closes #1644
See merge request tpo/core/arti!2547
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
inotify.
On windows and platforms that support inotify (i.e. linux and android),
we continue using the recommended watcher. On platforms that use kqueue,
we switch to a polling watcher to work around a [notify bug] that
manifests when using a non-recursive watcher to watch a directory.
This commit is best reviewed with `git diff --ignore-all-space`.
Closes #1644
[notify bug]: https://github.com/notify-rs/notify/issues/644
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
general::SocketAddr: Specify and implement string representations.
Closes #1681
See merge request tpo/core/arti!2519
|
| | | |
| | |
| | |
| | | |
(This turned up another place where we need documentation.)
|
| | | | |
|
| |\ \ \
| |_|/
|/| |
| | |
| | | |
arti: remove 'relay' subcommand and 'arti-relay' dependency
See merge request tpo/core/arti!2542
|
| | |/ |
|
| |/
|
|
|
|
|
| |
Should fix the build on NetBSD, see rust-pwd-grp#4.
Also, eliminates the last use of derive-adhoc, the old name for
derive-deftly.
|
| |\
| |
| |
| |
| | |
Abolish the toplevel Account
See merge request tpo/core/arti!2537
|
| | |
| |
| |
| | |
Fixes a TODO.
|
| |/
|
|
|
|
|
|
| |
The FreeBSD fixes were released in [`secmem-proc 0.3.4`].
Closes #1686
[`secmem-proc 0.3.4`]: https://github.com/niluxv/secmem-proc/pull/11
|
| |\
| |
| |
| |
| | |
Proof-of-work client
See merge request tpo/core/arti!2486
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In this design, the thin multiplexing layer between PoW types is always
available when onion services are in use, but the specific pow schemes
(and their dependency libraries) are gated by crate features everywhere.
There are now no new cfg() gates.
When the pow-v1 scheme is disabled, we can parse `pow-params v1` lines
into an empty type (so clients know a PoW scheme exists that might be
supported if they were configured differently). We currently don't save
the contents of unknown hsdesc items.
On the relaycell side, the hs ext module already sets a strong precedent
for keeping unrecognized data as a byte vec, and it doesn't provide a
good way to signal soft parse errors like unrecognized optional
extensions. There, the `v1` type is completely optional, and services
lacking a pow scheme suggested by a client would see one of these
'unrecognized' blobs. This isn't necessarily helpful but it fits the
rest of the design.
Co-authored-by: Micah Elizabeth Scott <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
My previous strategy here was to try and centralize hspow in one crate,
writing it like a self-contained feature. That introduced friction in
the data types, prompting the use of simplistic types at the netdoc/cell
layers and full-featured types in the optional modules.
This changes tactics, dissolving the low-level parts of tor-hspow into
tor-hscrypto and the high-level parts into hsclient/hsservice. Full
featured types are used everywhere now, but the tradeoff is that
compile-time configurability is a lot more pervasive. Anything that
knows about PoW types at all needs to be fully configured out. I took
this opportunity to try a more complete set of crate features, allowing
users to configure individual PoW schemes.
Co-authored-by: Micah Elizabeth Scott <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This adds a module to tor-hspow for version-independent client logic.
The entire module and its invocations are disabled unless the new
"hs-pow" compile time feature is set.
Co-authored-by: Micah Elizabeth Scott <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Like parameters, PoW solutions are versioned to account for multiple
algorithms over time. A single solution of a specific version may
accompany an INTRO1/2 as part of the encrypted extensions section. Its
encoding may depend on the version.
Co-authored-by: Micah Elizabeth Scott <[email protected]>
|