| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
New tor-socksproto API
Closes #1627
See merge request tpo/core/arti!2436
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This centralises the handling of return values, and paves the way for
further deduplication. (The two return paragraphs were identical.)
There's quite a lot of initial API surface to framework.rs. Some of
that is going to be hidden, but we're also going to extend this to do
more work.
No functional change.
|
| | | |
|
| | | |
|
| |\ \
| |/
|/|
| |
| | |
Provide a type-erased SleepProvider + CoarseTimeProvider and use it for memquota queues
See merge request tpo/core/arti!2460
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use tor_rtcompat::DynTimeProvider instead.
Ultimately, we're going to want one of these in Channel etc. The
CoarseTimeProvider generic argument then becomes pervasive.
Instead, erase it. This will involve an indirect function call each
time an item is inserted. I think that can't be helped.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
This will replace the internal ad-hoc DynCoarseTimeProvider in
tor-memquota.
We need this to be public because it's going to be shared by many of our
protocol elements (eg ClientCirc, Channel, etc.) as they need to use
it for their mq queues.
|
| |\ \
| | |
| | |
| | |
| | | |
Fix typed-index-collections versions to ~3.1.0
See merge request tpo/core/arti!2471
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Using the tilde here tells cargo not to bump to 3.2.x,
which would require Rust 1.81.0.
I wish we could say "don't use 3.2.x unless you're on Rust 1.81",
but I don't see an easy way. Leaving this as-is breaks our CI.
|
| |\ \ \
| |/ /
|/| |
| | |
| | | |
tor-chanmgr: support multiple channels for a relay ID
See merge request tpo/core/arti!2442
|
| | | |
| | |
| | |
| | |
| | | |
This is based off of the `n_key_set` macro, but lets you store multiple
items per key.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
tor-llcrypto: replace simple_asn1 dependency with der-parser
Closes #1632
See merge request tpo/core/arti!2462
|
| | | |/
| |/| |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
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.
|