| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
We mustn't use selector.selector() because that's for multiplicity,
not optionality. In pracctice, it goes wrong with Vec<u8>.
|
| | |
|
| |
|
|
| |
This was a c&p error, I think.
|
| | |
|
| |
|
|
|
|
| |
The hidden __non_exhaustive field has to be pub.
And, fix the use site, currently AuthCert.
|
| |
|
|
| |
Otherwise deriving NetdocEncodable doesn't work outside this crate.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
This method verifies all the signatures, and checks that the signing
authority is in the provided list. Anyway, authcerts aren't really
self-signed: they're a signature by KS_auth_id_rsa on
KP_auth_sign_rsa.
Note that there is also a `verify_selfcert` method which does only
some of the checks, and has some code duplication. That will be
cleaned up later.
|
| |
|
|
|
|
|
|
|
|
|
| |
With the introduction of the derives for document encoding, we now
have a trait ItemObjectEncodable. We will want a method on
ItemEncoder that takes an ItemObjectEncodable, and that should be
called `object` since it's a better approach than working ad-hoc with
tor_bytes::Writeable. (For example, an ItemObjectEncodable knows its
own label.)
So, rename `object` to `object_bytes`.
|
| |
|
|
| |
There are no breaking changes.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As per
https://gitlab.torproject.org/tpo/core/arti/-/issues/2436#note_3384773
Made with
nailing-cargo -Eu set-version -p arti-client 0.41.0
nailing-cargo -Eu set-version -p arti-relay 0.41.0
nailing-cargo -Eu set-version -p arti-rpcserver 0.41.0
nailing-cargo -Eu set-version -p arti-ureq 0.41.0
nailing-cargo -Eu set-version -p arti-rpc-client-core 0.41.0
nailing-cargo -Eu set-version -p tor-basic-utils 0.41.0
nailing-cargo -Eu set-version -p tor-error 0.41.0
nailing-cargo -Eu set-version -p tor-general-addr 0.41.0
nailing-cargo -Eu set-version -p tor-geoip 0.41.0
nailing-cargo -Eu set-version -p tor-memquota-cost 0.41.0
nailing-cargo -Eu set-version -p tor-llcrypto 0.41.0
nailing-cargo -Eu set-version -p tor-cert-x509 0.41.0
nailing-cargo -Eu set-version -p tor-rtcompat 0.41.0
nailing-cargo -Eu set-version -p tor-rtmock 0.41.0
nailing-cargo -Eu set-version -p tor-async-utils 0.41.0
nailing-cargo -Eu set-version -p tor-config 0.41.0
nailing-cargo -Eu set-version -p tor-config-path 0.41.0
nailing-cargo -Eu set-version -p tor-rpc-connect 0.41.0
nailing-cargo -Eu set-version -p tor-log-ratelim 0.41.0
nailing-cargo -Eu set-version -p tor-rpcbase 0.41.0
nailing-cargo -Eu set-version -p tor-memquota 0.41.0
nailing-cargo -Eu set-version -p tor-units 0.41.0
nailing-cargo -Eu set-version -p tor-bytes 0.41.0
nailing-cargo -Eu set-version -p tor-protover 0.41.0
nailing-cargo -Eu set-version -p tor-checkable 0.41.0
nailing-cargo -Eu set-version -p tor-cert 0.41.0
nailing-cargo -Eu set-version -p tor-key-forge 0.41.0
nailing-cargo -Eu set-version -p tor-hscrypto 0.41.0
nailing-cargo -Eu set-version -p tor-socksproto 0.41.0
nailing-cargo -Eu set-version -p tor-linkspec 0.41.0
nailing-cargo -Eu set-version -p tor-cell 0.41.0
nailing-cargo -Eu set-version -p tor-persist 0.41.0
nailing-cargo -Eu set-version -p tor-keymgr 0.41.0
nailing-cargo -Eu set-version -p tor-relay-crypto 0.41.0
nailing-cargo -Eu set-version -p tor-proto 0.41.0
nailing-cargo -Eu set-version -p tor-netdoc 0.41.0
nailing-cargo -Eu set-version -p tor-consdiff 0.41.0
nailing-cargo -Eu set-version -p tor-netdir 0.41.0
nailing-cargo -Eu set-version -p tor-relay-selection 0.41.0
nailing-cargo -Eu set-version -p tor-chanmgr 0.41.0
nailing-cargo -Eu set-version -p tor-ptmgr 0.41.0
nailing-cargo -Eu set-version -p tor-dircommon 0.41.0
nailing-cargo -Eu set-version -p tor-guardmgr 0.41.0
nailing-cargo -Eu set-version -p tor-circmgr 0.41.0
nailing-cargo -Eu set-version -p tor-dirclient 0.41.0
nailing-cargo -Eu set-version -p tor-dirmgr 0.41.0
nailing-cargo -Eu set-version -p tor-dirserver 0.41.0
nailing-cargo -Eu set-version -p tor-hsclient 0.41.0
nailing-cargo -Eu set-version -p tor-hsservice 0.41.0
nailing-cargo -Eu set-version -p tor-hsrproxy 0.41.0
|
| |
|
|
| |
As generated by maint/fixup-features.
|
| | |
|
| | |
|
| |
|
|
|
| |
This commit lno_for_error in ItemStream to lno because its value may not
always be used for error handling, such as in tor-consdiff.
|
| |
|
|
|
|
|
|
|
| |
This commit adds the ParseError::new() method, which allows external
APIs to construct a ParseError, which is currently not possible due to
non-exhaustiveness, despite the member fields being public.
It is required for external applications using lower-level but public
parse2 APIs, such as ItemStream's.
|
| |
|
|
| |
Typos found with codespell
|
| | |
|
| |
|
|
| |
Suggested-by: Clara Engler <[email protected]>
|
| |
|
|
|
| |
This is implied by `body` being the body before the first signature
item, but needs to be part of the definition.
|
| | |
|
| |
|
|
|
|
| |
"Regular" is confusing, especially since in American English it tends
to mean "usual" - whereas, there are no orderly signatures in Tor
netdocs.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
I have been losing my way in this file a lot. This may help.
|
| |
|
|
|
| |
This could allow users to attach and detach signatures, hash (only)
the body part, etc.
|
| |
|
|
| |
Such an impl is a footgun. Explain this in docs & comments.
|
| |
|
|
| |
(pre-fmt)
|
| |
|
|
|
|
|
|
|
| |
We want to stop deriving NetdocParseable directly for body structs.
This test case does in fact parse a signed authcert and extract just
the body without verifying the signatures. That's fine in a test, but
we're going to make it involve some hoop-jumping. So, jump those
hoops.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the two separate NetdocParseable and NetdocUnverified derives,
for toplevel signed documents, with a single derive.
This makes the derive API simpler. It will also make it reasonably
possible to avoid deriving NetdocParseable directly for body structs.
Such impls are a security hazard!
In detail:
* Rename NetdocUnverified to NetdocParseableUnverified
* Have it use $IMPL_NETDOC_PARSEABLE from the NetdocParseable deftly
module so that it derives NetdocParseable for the body.
(We'll change this later in the series.)
* Adjust the docs and all call sites.
|
| |
|
|
|
| |
We are going to want to reuse this parsing implementation in another
top-level deftly template.
|
| |
|
|
|
| |
Run rustfmt and selectively apply the hunks that are relevant to the
previous commit.
|
| |
|
|
|
|
|
|
|
|
| |
During encoding, including these hashes in the signature items makes
no sense. The hashes are an *input* to the signature items, but not
part of them.
Move the hashes out of the items. Instead, provide each signatures
section type with a hash accumulator type, in which the hash(es) are
stored.
|
| |
|
|
|
| |
Nonfunctional and formatting changes which reduce noise in the next
commit.
|
| | |
|
| |
|
|
| |
This is going to contain body information, and the hashes, too.
|
| | |
|
| |
|
|
|
|
| |
This is going to be its own trait and it is usually best if macros are
named after traits, rather than having the macro derive a different
trait depending on meta attributes.
|
| |
|
|
|
| |
We're going to want this for cases where the hash computation
machinery didn't DTRT.
|
| |
|
|
| |
We're going to want this for sets of netdoc signature hashes.
|
| |
|
|
| |
For reuse when we split up the NetdocParseable derive.
|
| | |
|
| |
|
|
| |
But, all signatures in the current protocol are irregular :-/.
|