| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
Finish #525 for relay messages: Only parse messages at the last instant.
Closes #773 and #525
See merge request tpo/core/arti!1017
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We now manipulate raw relay cell bodies as (an alias for)
`Box<[u8;509]>` rather than as (an alias for) `[u8;509]`. This
enables us to do much less copying. It will become more important
soon, as we defer parsing relay cell bodies even longer.
Related to #7.
We also use SliceWriter to avoid allocating a Vec<> for every relay
message we want to encode, and instead encode directly into the
cell.
|
| |/
|
|
| |
(None of the breaking changes affect us this time.)
|
| |\
| |
| |
| |
| | |
Apply restricted_msg to ChanMsg parts of tor-proto
See merge request tpo/core/arti!1013
|
| | |
| |
| |
| | |
This allows us to remove a shenanigan from `restricted_msg!{}`.
|
| | |
| |
| |
| |
| | |
This already allows us to get rid of some duplication, and will be
useful more widely in a moment.
|
| | |
| |
| |
| |
| |
| | |
Locally, the only functional effect is that now we refuse to handle
non-whole-number-of-minutes lengths - but since the consensus
parameter can't represent those, there's no overall functional change.
|
| |/ |
|
| |
|
|
| |
This is the main implementation part of #525.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
There are some places where I note certificates which are not
currently validated, because there is no cryptographic point in
doing so. We should either document that this is okay, or validate
the certificates anyway.
This code might benefit from refactoring to make it prettier.
|
| |
|
|
|
| |
This is tested via a round-trip check, and via a successful
decryption of our example descriptor's outer layer.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
In !948 we renamed a couple of accessor functions, which is a
breaking change in `tor-cell`'s API.
In retrospect, perhaps we should have deprecated the old names and
added the new ones, so we wouldn't have to break the API. (This is
the only API break AFAICT since 1.1.0.)
|
| |
|
|
|
|
| |
These crates had API or behavior changes that may affect downstream
crates. Fortunately, they're all version 0.x, and don't need minor
bumps for this.
|
| |
|
|
|
|
|
| |
These changes influence behavior, but not effect compatibility.
(If I messed up, and any crate except for `arti` has non-breaking
API changes, that's still fine, since they are all version
0.x.)
|
| |
|
|
|
| |
These crates have not had changes to their behavior; as such it is
not necessary to bump their dependencies to require the new versions.
|
| | |
|
| |
|
|
|
| |
It's cute, but I don't think it will help performance, and I'm
undecided about whether the semantic implications are true.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This logic is a bit tricky, so I've tried to document it and add
fairly good tests. The silver lining is that the external API for
all of this logic will make it invisible and hidden.
There are some cases where I added functions that I think might
eventually get lowered into MdConsensus: But I don't want to lower
too much right now, since the convention for our netdoc accessors is
that they are fairly unsophisticated, and they show you the document
as it is.
Closes #686
|
| |\
| |
| |
| |
| | |
Upgrade toml to version 0.6.
See merge request tpo/core/arti!989
|
| | |
| |
| |
| |
| |
| |
| | |
This required rewriting some of our error handling code in
command-line processing, since the toml crate now displays and
reports errors differently. (Admittedly, this code still is kind of
ugly, but at least it is nicely hidden.)
|
| | | |
|
| | |
| |
| |
| |
| | |
This implementation was made based on the specification, and then
validated against itself, and against C Tor.
|
| | |
| |
| |
| |
| | |
This required some API tweaks, which is probably to be expected;
these time periods are a wonky kind of thing.
|
| | | |
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
(We don't yet use the code that uses it, but we might as well have
our unused code be up-to-date.)
|
| | |
|
| |
|
|
|
|
|
|
|
| |
This is in lieu of upgrading to the latest base64 crate, which has
a different API from the old one. Since we have to migrate either
way, we might as well use base64ct everywhere.
I don't think that most of these cases _require_ constant-time
base64, but it won't hurt.
|
| | |
|
| |\
| |
| |
| |
| | |
Make a top-level API for connecting to onion services.
See merge request tpo/core/arti!971
|
| | |
| |
| |
| | |
Fortunately, it adds very little to the arti-client API surface.
|
| |/
|
|
| |
ed25519 1.5.2 has been yanked.
|
| |
|
|
|
|
|
|
|
| |
These are a bit complex internally, but the API they present is
pretty simple. I've left some discussion of points where the design
isn't totally fleshed out, and where we need to look harder at the
spec.
Part of #716.
|
| |
|
|
|
|
|
| |
On 1.22, cargo audit is complaining about RUSTSEC-2023-0001.
We aren't affected, since we don't use windows named pipes (yet),
but let's make cargo audit happier.
|
| |\
| |
| |
| |
| |
| |
| | |
Temporary fix for #715 and #569
Closes #715
See merge request tpo/core/arti!958
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
Onion service APIs, part 1.
See merge request tpo/core/arti!959
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This module has types and operations needed in multiple places
for an onion service implementation. There are a bunch of
TODO hs-crypto comments that we'll need to fill in.
|
| |/ / |
|
| |/ |
|