| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
```bash
readarray -t bump < <(maint/list-crates | grep -P '^tor-|^arti-')
for crate in "${bump[@]}"; do cargo set-version --bump minor -p "${crate}"; done
```
|
| |\
| |
| |
| |
| | |
tor-netdoc: testing: Expose some more test utilities
See merge request tpo/core/arti!4250
|
| | |
| |
| |
| | |
Involves code motion. Review with --color-moved.
|
| | |
| |
| |
| | |
I don't understand why this suddenly, but whatever.
|
| | |
| |
| |
| | |
Involves lots of code motion. Review with --color-moved.
|
| | |
| |
| |
| | |
This whole module is gated by the very same condition.
|
| | |
| |
| |
| | |
I discovered this didn't work, when I tried to use it.
|
| |\ \
| | |
| | |
| | |
| | | |
Important pre-release fixes for RouterDescUnverified::verify()
See merge request tpo/core/arti!4252
|
| | | |
| | |
| | |
| | | |
Better do it before the release so we can think about it a bit more.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We need to obtain the maximum of the lower bound and the minimum of the
upper bound instead of vice versa.
Another example on why we should replace this with a better
implementation.
Likewise, `expiry` in the legacy verification code is also obtained like
that.
|
| | | |
| | |
| | |
| | |
| | | |
This makes it more clear, besides it will sound more "correct" with the
next commit applied.
|
| |\ \ \
| |/ /
|/| |
| | |
| | | |
tor-netdoc: Fix typo in testdata-live-download and RELAY_* constants
See merge request tpo/core/arti!4249
|
| | |/
| |
| |
| |
| | |
I still had the previously downloaded full consensus locally, so
running testdata-live-download fixed the Rust file.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
Otherwise clippy complains.
|
| | |
| |
| |
| |
| | |
This commit adds a comprehensive test for router descriptor verification
that tests various valid and invalid edge cases.
|
| | |
| |
| |
| | |
Required for convert_curve25519_to_ed25519_private().
|
| | |
| |
| |
| |
| |
| |
| | |
This is a bad encode_sign() method for RouterDesc that is testing only
and will be used soon to implement testing for invalid router
descriptors, for which we may need to create invalid ones in the first
place.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit implements verification for router descriptors. 🎉
For this, the following checks are performed:
* RouterDesc::identity_ed25519 is validly signed.
* RouterDesc::master_key_ed25519 is as implied by identity_ed25519.
* RouterDesc::fingerprint is as implied by RouterDesc::signing_key.
* RouterDesc::ntor_onion_key_crosscert is validly signed.
* RouterDesc::signing_key has correct length and exponent.
* All RouterDesc::family_cert elements are valid.
* The inner and outer RouterDescSignatures are valid.
Unfortunately, we now have two implementations for that, as the legacy
parse_internal() also implements its own verification logic for this.
It seems merging these two together however would probably cause more
harm than good, as the legacy verification is closely intertwined with
legacy parsing, making a commonly shared verification logic hard to
achieve. In other words: parse2 parses the descriptor in its entirety
first, followed by verification afterwards, whereas the legacy code
parses and verifies every field before advancing towards the next.
Instead, I suggest to read through RouterDesc::parse_internal() and
ensure that every verification related check present there is also
present here. The notable exception to this is everything TAP related,
which is absent on purpose here.
Right now, this code is untested. I will add unit tests shortly
afterwards.
|
| |/
|
|
| |
The underlying type also implements Copy. We will need it later.
|
| |
|
|
|
|
|
| |
`onion_key_crosscert` was already absent from `RouterDesc`, even
though its item `onion-key-crosscert` was processed by the old parser.
Delete it all.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See prop350
https://spec.torproject.org/proposals/350-remove-tap.html
This is part of "Phase 3, Item 2: Remove vestigial TAP code in Arti".
Technically we are not at phase 3 yet, because we haven't yet
sunsetted C Tor 0.4.8 and made the dirauth changes in Phase 2.
However, this field is not used in Arti right now. RouterDescs are
used by client code for handling bridges (but we never use TAP keys),
and the RouterDesc type will be used for generation and mirroring by
by Arti Relay/Dirauth.
In prop350 we have decided that we won't be deploying Arti Relay until
this as been done.
|
| |\
| |
| |
| |
| | |
Fix some recently-appearing clippy lints
See merge request tpo/core/arti!4240
|
| | |
| |
| |
| | |
Placates recent clippy.
|
| |\ \
| | |
| | |
| | |
| | | |
Tidy some uses of Intern
See merge request tpo/core/arti!4233
|
| | | |
| | |
| | |
| | | |
We intern these in Microdesc, and should be consistent.
|
| | | | |
|
| | |/
| |
| |
| | |
Rather than converting it to an Arc. This is the new idiom for Intern.
|
| |\ \
| | |
| | |
| | |
| | | |
tor-netdoc testdata-live: More shell script, less macrology
See merge request tpo/core/arti!4238
|
| | | |
| | |
| | |
| | |
| | | |
This is no longer used. Get rid of the code which generates it, and
the generated file.
|
| | | |
| | |
| | |
| | |
| | | |
This gits rid of the macrology, apart from the generated macro module
file.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is the code for the new approach. It's kind of ad-hoc but also
much less deep than the previous macrology.
And, run the script to see the output. Currently that file isn't used.
For now we leave the shell script code for generating
selected_relays.rs in testdata-live-download. The new code for
generated_consts.rs is very different, so it's clearer to split the
changes up this way.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I'm going to change the generation, and that means I need input files,
so I need to run a download (as per the comment in
testdata-live-download).
I'm doing this first, so the rest of the MR can see individual
changes.
|
| |\| |
| |/
|/|
| |
| | |
tor-netdoc testdata-live: Two nits
See merge request tpo/core/arti!4237
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
tor-netdoc: Add a few affordances
See merge request tpo/core/arti!4235
|
| | | |
| | |
| | |
| | |
| | |
| | | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/4235#note_3439437
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/4235#note_3439438
|
| | | |
| | |
| | |
| | |
| | | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/4235#note_3439436
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
I keep finding I want to encode things and then I have to prat about
with a NetdocEncoder. Let's provide potted versions.
|
| |\ \ \
| |/ /
|/| /
| |/
| | |
tor-netdoc testdata-live: Export for the benefit of other crates
See merge request tpo/core/arti!4229
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Add a new testdata_live module which is exposed with the testing
features, containing the testdata-live in string constants.
This avoids the need for test cases in other crates to walk the
filesystem to an area outside their own crate path.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
We're about to *use* the fix that was in 1.11.4. We already updated
the lockfile in !4228, so this is just Cargo.toml changes (which will
prevent the minimal-versions tests failing when we change the code to
rely on the fix).
git-grep -l '^derive-deftly' |xargs perl -i~ -pe 's{\b\Q1.11.3\E\b}{1.11.4}g'
|
| | |
| |
| |
| |
| |
| |
| | |
This updates everything, but really I'm just running it to create the
new selected_relays.rs file.
The meaning of this file will become clear shortly.
|
| | |
| |
| |
| |
| |
| |
| | |
We could use build.rs for this, but since we have a script already,
this seems better.
The meaning of this file will become clear shortly.
|