| Commit message (Collapse) | Author | Age | Files | Lines |
| |\
| |
| |
| |
| | |
Version bumps for arti-1.2.8 release
See merge request tpo/core/arti!2466
|
| | |
| |
| |
| |
| |
| |
| | |
Generated with
```
cargo set-version --bump patchlevel -p arti
```
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Per our policy, every one of these gets a minor bump.
Generated with:
```
for crate in $(./maint/list_crates | grep '^\(tor\|arti\)-' ); do
cargo set-version --bump minor -p $crate;
done
```
(Note the use of `-` at the end end of the grep pattern to prevent
matching the `arti` crate.)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These crates are not in the tor/arti namespace,
but we have given them MSRV bumps:
```
oneshot-fused-workaround
slotmap-careful
fslock-guard
hashx
equix
caret
fs-mistrust
safelog
test-temp-dir
retry-error
```
We are counting this as a breaking change.
Since all of these crates are at 0.x.x,
we have indicated the breaking change with a minor version bump.
This commit was generated with the following script:
```
BUMPS="
oneshot-fused-workaround
slotmap-careful
fslock-guard
hashx
equix
caret
fs-mistrust
safelog
test-temp-dir
retry-error
"
for crate in $BUMPS; do
cargo set-version --bump minor -p $crate;
done
```
|
| | |
| |
| |
| | |
version 3.2.0 requires rust 1.81.
|
| |/ |
|
| |\
| |
| |
| |
| | |
Upgrade MSRV to 1.77 , and rusqlite to 0.32.1
See merge request tpo/core/arti!2451
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
The `derive_more` crate broke backward compatibility with this version,
so this change involved quite a few manual fixups.
With luck, they'll keep compatibility for some while in the future.
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
arti: Add hsc subcommands for key rotation and deletion
Closes #1475
See merge request tpo/core/arti!2435
|
| | |
| |
| |
| | |
Part of #1475
|
| |/
|
|
|
|
|
|
|
| |
This re-exports the types/traits needed by the `define_ed25519_keypair`
macro so that the macro caller doesn't need to import a bunch of extra
packages in its Cargo.toml that it doesn't use, and so that the caller
doesn't need a `use prelude::*` before invoking the macro. This makes
the macro nicer to use for the caller, and should prevent the macro from
causing "cannot find ... in this scope" errors.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When creating the KeyMgr, attempt to create the long-term identity key
if none are found in the KeyMgr.
Until the KeyMgr has certificate support, we can't create the
certificate. Add a TODO comment item about future work needed there.
Related to #1604
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is the first step before creating relay key definition and storing
them into a keystore.
The KeyMgr should be passed on the ChanMgr in later commit so the
ChanMgr can use it for the authenticated channel handshake.
Part of #1604
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a new crate called tor-relay-crypto which is responsible for
declaring the relay keys and certificate that will be used by a relay
and stored in a KeyMgr.
This is in its own crate and considered pretty low level so other crates
can use it to access the relay keys, like tor-proto, for cryptographic
actions like channel authentication or descriptor signing.
The lower level cryptographic keys are wrapped in a higher level object
in this crate, using tor-key-forge crate, so we can have proper semantic
and strong type check on those keys so they are not misused or confused
with other keys.
At this point, the key declaration might change once the KeyMgr supports
attaching a certificate to a key. We are likely going to see more code
related to certificate creation in this crate in the future.
Part of #1604
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement the signature::Signer and Ed25519PublicKey trait so the
ed25519 keypair wrapper can be easily used for certificate creation.
This also adds a to_ed25519_id() so we can get a Ed25519Identity which
is an object used around.
Finally, add a prelude module as the list of imports started to grow a
bit out of control.
Part of #1604
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
| |
I just perpetrated a bug by adding a variant to this which ended up
not PartialEq to itself. This open-coded match is a footgun.
No functional change.
|
| |
|
|
|
| |
Suggested in
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2390#note_3072975
|
| |\
| |
| |
| |
| | |
arti-relay: add and use `Error`/`ErrorDetail`
See merge request tpo/core/arti!2392
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Most of this is copied from `arti_client::err`, but with a lot of stuff
removed to simplify the error types (for example no `error_detail`
feature handling). I tried to keep things generally consistent with
arti-client so that error handling will be similar in both crates.
`TorRelayBuilder::create()` will likely need to be fallible in the
future (for example if spawning a task for the OR port listener fails),
so it now returns a `Result<TorRelay, crate::err::Error>` instead of
just a `TorRelay`.
|
| | |
| |
| |
| |
| | |
There's a blocking TODO here about exposing socks error codes that
I still need to solve.
|
| |/
|
|
|
|
| |
Requires #1523.
Implements #1524.
|
| |
|
|
| |
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
| |
Everything copied in the previous commits to tor-keys is now removed and
tor-keys crate is used accross the code.
Minor changes to tor-keys to accomodate this change.
Part of #1137
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
| |
As stated in the comment added in this commit, this is temporary as we
want tor-hscrypto to start using tor-keys and define these
implementation there.
Part of #1137
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move EncodableKey, ToEncodableKey and Keygen to tor-keys crate from
tor-keymgr.
To pull this off, an err.rs was added taken from tor-keymgr but stripped
down to what was needed only. No code was changed in any of the files
copied from tor-keymgr.
Our deftly macro now auto implement these traits for the key wrapper
type created. This gives the ability of the wrapper to be used by a
tor-keymgr::Keystore.
In order to pull this off, most of the SSH code has been moved into this
crate (ssh.rs) meaning that its ABI/API now resides in the tor-keys
trait outside of tor-keymgr.
Note that Sealed was not put back because the deftly macro is designed
to be used outside of this crate and thus implementing EncodableKey. The
alternative is that we would need to force all arti keys to be declared
in this crate which is not great because it then exposes all these key
types to the world outside their subsystem.
Part of #1137
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The derive ed25519 keypair macro now implements the keymgr trait so the
key wrapper can now be used with a keystore without needing to specify
it in the tor-keymgr crate.
For this to work, a slight change to the KeygenRng trait was needed as
in to expect the CryptoRngCore trait which is what ed25519-dalek
requires.
And also, the removal of the Sealed trait since now it is accepted to
implement these traits outside tor-keymgr.
Fixes #1137
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
| |
At this commit, we also add a derive-deftly macro for ed25519 keypair
along a helper macro that can define a wrapper around a lower-level
ed25519::Keypair.
Part of #1137
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
| |
Including testing that uncommenting the example generates a config
with tracking enabled, and that the example low_water is the default
value for the example max.
|
| | |
|
| | |
|
| |
|
|
|
| |
This breaks config tests in crates/arti which test configuration
parsing of disabled experimental features.
|
| |
|
|
|
|
| |
* In arti, memquota simply turns on in memquota arti-client
* In arti-client, add an (unconditional) dependency on tor-memquota,
and have the memquota feature turn on the feature in tor-memquota.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow a `Config` to represent "this is supposed to be disabled".
This involves wrapping the actual built configuration in an IfEnabled.
We treat max = usize::MAX, or max being unspecified, as "disable".
We can now reporting an error during config building if max is set but
we're compiling the feature out. Conversely, we can now make
`MemoryQuotaTracker::new()` unconditional, since enabled
confiogurations are uninhabited when the feature is compiled out.
We change how we derive the setters, deriving them from the Builder.
I chose to abolish the use of derive_builder. See the new comment on
ConfigBuilder.
|
| |
|
|
|
| |
We're about to change the config behaviour; adding these tests first
allows us to demonstrate the changes.
|
| |
|
|
|
|
|
|
| |
Done using:
```
cargo set-version --bump patch -p arti
```
|
| |
|
|
|
|
|
|
|
|
| |
Done using:
```
for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do
cargo set-version -p $crate 0.22.0
done
```
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This bumps the versions of the non-{arti,tor-}
crates that have non-functional changes:
- fslock-guard (updated rustdoc-args)
- equix (comment typo fixes)
- caret (updated rustdoc-args)
- safelog (updated rustdoc-args)
- retry-error (updated rustdoc-args)
And of the pre-1.0.0 crates that have new APIs:
- fs-mistrust (new `CheckedDir::metadata` API)
Done using
```
for c in "${non_tor[@]}"; do maint/bump_nodep $c; done
```
where `non_tor` contains the list above
|
| |
|
|
| |
This is the first time we're publishing this, so let's start at 0.1.0.
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
Fix reproducible build CI job for macOS
Closes #1394 and #1507
See merge request tpo/core/arti!2377
|
| | |
| |
| |
| | |
Fixes: tpo/core/arti#1507.
|
| | | |
|
| | |
| |
| |
| |
| | |
Now that `oneshot-fused-workaround` is its own crate, `tor-rtmock` doesn't need
`tor-async-utils`.
|