| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
| |
This change might seem pointless for now but it will be required and
unavoidable later on, because we will have to change
RouterDesc::fingerprint from RsaIdentity to Option<SpFingerprint> which
will make it impossible to be used inside the getter anymore.
With this change, our only resort is to obtain the RSA identity from the
signing key but we can only return a copy then because that RSA identity
is created ad-hoc then.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit changes the name of all (except accept/reject) real items in
RouterDesc to their proper name as found in the spec.
This is a breaking change and semver.md has been updated properly.
In the instanciation of RouterDesc in the legacy parser, we now use a
"weird" syntax of some fields using a different name throughout the
code, but that is ok. Changing this would make the diff way larger at
the risk of breaking things, especially because many variables such as
identity_cert get shadowed countless times within the function, making
it harder and error prone to change.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit reorders the real RouterDesc items according to the spec.
Unfortunately, the names of those are not real yet, meaning that
verifying this is somewhat hard. Personally, I recommend to verify that
this commit does not add/remove lines using --color-moved. The correct
order is probably easier to verify with the next commit applied that
adds nice rustdoc comments explaining to which fields in the spec the
respective items belong. This is a bit of a chicken egg situation but
if I would have added the nice rustdoc comments first, this diff would
have been awful to review, because the hunks of reordering the nice
rustdoc comments included are awful to review, so please bear with me
for the next commit.
|
| |
|
|
|
|
|
|
| |
This commit reorders the RouterDesc struct into virtual and real items,
with real items being items that actually exist (although potentially
under a different name) in router descriptors. Virtual items on the
other hand do not exist this way in router descriptors and have to be
removed at one point or another.
|
| |
|
|
| |
Makes this much nicer to read.
|
| |
|
|
| |
This is just one cfg, for RelayPlatform.
|
| |
|
|
|
| |
This commit implements the RouterDescSignatures type that carries the
signatures for the yet to be derived RouterDescUnverified.
|
| |
|
|
| |
This commit adds a specification link to the RouterDesc struct.
|
| |
|
|
|
| |
This commit implements ItemArgumentParseable for RelayPlatform which we
will need in the parse2 version of RouterDesc eventually.
|
| |
|
|
|
|
|
|
| |
This will let us use it in more places, more sensibly.
Sadly it means a lot of syntactic vinegar at many of the call sites in
the old parser, which has very janky ideas about how errors should
work.
|
| |
|
|
| |
Accidentally left out in the previous commit.
|
| |
|
|
|
|
| |
This is used by the old parsing code, apparently as a thing to hang
the checking methods off. It is confusing to have so many different
RSA types! Let's at least rename this one.
|
| |
|
|
| |
(It's now done in tor_protover.)
|
| |
|
|
|
| |
My planned encoding derive macro is not going to use `decl_keyword!`
but will need to call `NetdocEncoder::item`.
|
| |
|
|
| |
Run maint/add_warning
|
| |
|
|
| |
Fixes #2192
|
| |
|
|
| |
Part of making ns.rs and md.rs largely identical.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
First, run
```
git grep -l "^edition =" |
xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;'
```
Second, manually verify that all Cargo.toml files have changed,
and nothing else has changed.
Third, run cargo fmt again.
|
| |
|
|
|
|
| |
- Replaced `once_cell::sync::Lazy` with `std::sync::LazyLock`.
Signed-off-by: hashcatHitman <[email protected]>
|
| |
|
|
|
|
|
| |
I'm about to make our parsers reject some strings at construction
time, so it makes sense to have these functions become fallible.
This is a breaking change.
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
tor-netdoc: Dangerously expose annotation fields
Closes #1469
See merge request tpo/core/arti!2213
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit exposes the fields of `routerdesc::AnnotatedRouterDesc` and
`routerdesc::RouterAnnotation` with the enabled feature
`dangerous-expose-struct-fields`.
On one side, it achieves a greater consistency among the other
structures found within this module; On the other side it makes the
already public API (assuming the feature above is enabled) useable.
Fixes #1469
|
| |/
|
|
|
| |
This is the client-side part of phase 1 for proposal 350,
which will eventually remove TAP completely from the Tor network.
|
| |
|
|
|
| |
The use of cfg(fuzzing) here is reasonable and localized, but we
need to permit it to avoid a warning from #1395.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
`ParseErrorSource` was originally meant to represent a parsing error,
this enum has since gained some variants that aren't really parsing
related (`Signature`, `CertSignature`, `UntimelyDescriptor`).
Since this error type is now used for general-purpose netdoc errors,
let's rename `ParseError{Kind, Source}` to `NetdocError{Kind, Source}`.
Signed-off-by: Gabriela Moldovan <[email protected]>
|
| |\
| |
| |
| |
| |
| |
| | |
tor-netdoc: Abolish PauseAt in favour of using itertools
Closes #760
See merge request tpo/core/arti!1021
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| | |
We can just make a new PauseAt, since it can take the inner peekable
iterator by mutable reference.
This seems to tidy the code up a bit too.
|
| |/
|
|
| |
Fixes #772
|
| |\
| |
| |
| |
| |
| |
| | |
Fix AuthCert behavior on unrecognized tokens, and prevent bug from recurring elsewhere.
Closes #752
See merge request tpo/core/arti!1006
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now we require that, for all `SectionRules`, either the caller say
how to handle unrecognized tokens (using `.add(UNRECOGNIZED...)`),
or that they explicitly reject unrecognized tokens (using
`reject_unrecognized`()`.)
This solution uses an assert!() rather than an Error to indicate
failure. I say that's fine, since
1. This is a crate-internal API.
2. We never dynamically construct SectionRules according to
different behavior: they are always prefabricated in a fixed
code block. Thus, if we test a parser at all, we will make
sure that its SectionRules are well-formed.
I considered and explicitly rejected a solution where the builder
had to be finalized with separate methods `build_strict()` or
`build_tolerant()`: It's too easy IMO for the caller to forget what
these call means.
Prevents further recurrences of #752.
Closes #752.
|
| | |
| |
| |
| | |
No new behavior yet.
|
| |/ |
|
| |
|
|
|
| |
This panics on error, and we're fine with a panic on misbehavior in
tests.
|
| |\
| |
| |
| |
| | |
Add test lint blocks to all "mod test"
See merge request tpo/core/arti!937
|
| | |
| |
| |
| |
| | |
This is precisely the result of running the rune in
maint/adhoc-add-lint-blocks.
|
| |/ |
|
| | |
|
| |
|
|
| |
These required hex-editing identity certificates :P
|
| | |
|
| |
|
|
| |
This is from Akka, which ahf runs.
|
| |
|
|
| |
This issue is now torspec!94.
|
| | |
|