aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | arti: Resolve unreachable-pub warnings.Nick Mathewson2026-01-132-24/+63
| | | | |
| * | | | arti: tweak notes on experimental-apiNick Mathewson2026-01-131-4/+6
| | | | |
| * | | | arti: rename experimental-api "run" to "run_proxy".Nick Mathewson2026-01-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Or rather, un-rename it. It's no longer a stable thing, so it doesn't need to have this particular name.
| * | | | Make arti crate opaque by defaultNick Mathewson2026-01-134-67/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only fn main() is now pub when experimental-api is disabled. Closes #2284.
| * | | | Run check_arti_opacity from gitlab CI.Nick Mathewson2026-01-131-0/+8
| | | | |
| * | | | Add a script to test the APIs in the arti against a list.Nick Mathewson2026-01-131-0/+83
| | | | | | | | | | | | | | | | | | | | | | | | | We'll use this to enforce the opacity of the arti crate, once it is more opaque.
* | | | | Merge branch 'encoded-other' into 'main'Alexander Hansen Færøy2026-01-151-8/+16
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: Remove remaining use of EP::Other See merge request tpo/core/arti!3595
| * | | | | tor-netdoc: Remove remaining use of EP::OtherClara Engler2026-01-151-8/+16
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | This commit replaces the last remaining uses of `EP::Other` in `tor-netdoc`, which got removed in arti!3561 but was still made use of in arti!3592 without causing a merge conflict.
* | | | | Merge branch 'encoded-authcert' into 'main'Ian Jackson2026-01-1516-292/+605
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Implement EncodedAuthCert and use it in poc for votes See merge request tpo/core/arti!3592
| * | | | | tor-netdoc: EncodedAuthCert: docs grammarIan Jackson2026-01-151-1/+1
| | | | | |
| * | | | | tor-netdoc: EncodedAuthCert: remove another bit of leftover debugIan Jackson2026-01-151-1/+0
| | | | | |
| * | | | | tor-netdoc: EncodedAuthCert: remove a hard tab in a commentIan Jackson2026-01-151-1/+1
| | | | | |
| * | | | | tor-netdoc: EncodedAuthCert: bodge the features for nowIan Jackson2026-01-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The feature arrangements in tor-netdoc are getting to be in need of a serious overhaul.
| * | | | | tor-netdoc: EncodedAuthCert: remove a bit of leftover debugIan Jackson2026-01-151-1/+1
| | | | | |
| * | | | | Abolish now-done plans for encoded authcertsIan Jackson2026-01-151-81/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The structural confusion hazard is now discussed extensively in torspec and referenced from the code. The proposal has been implemented.
| * | | | | tor-netdoc: EncodedAuthCert: move future plans to a commentIan Jackson2026-01-152-22/+22
| | | | | | | | | | | | | | | | | | | | | | | | This probably isn't going to happen, but let's keep the idea in-tree.
| * | | | | tor-netdoc: EncodedAuthCert: move/tidy rationale informationIan Jackson2026-01-152-53/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the information which still seems relevant out of the plan document.
| * | | | | tor-netdoc: EncodedAuthCert: use in poc integration test / demoIan Jackson2026-01-151-6/+15
| | | | | |
| * | | | | tor-netdoc: EncodedAuthCert: unit testsIan Jackson2026-01-151-0/+197
| | | | | |
| * | | | | tor-netdoc: EncodedAuthCert: implementIan Jackson2026-01-153-0/+214
| | | | | | | | | | | | | | | | | | | | | | | | As per doc/dev/notes/authcert-in-consensus.md.
| * | | | | tor-netdoc: Expose whole input string (rustfmt)Ian Jackson2026-01-151-2/+1
| | | | | |
| * | | | | tor-netdoc: Expose whole input stringIan Jackson2026-01-152-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The string so far is exposed already via whole_for_signatures. It is unusual for a doc parser to need this, but embedded documents can use this plus byte_position to get the original input text for their part of the outer document.
| * | | | | tor-netdoc: parse2: Provide NetdocParseable::is_structural_keyword (rustfmt)Ian Jackson2026-01-152-5/+3
| | | | | |
| * | | | | tor-netdoc: parse2: Provide NetdocParseable::is_structural_keywordIan Jackson2026-01-156-2/+87
| | | | | | | | | | | | | | | | | | | | | | | | Roughly as per the proposal in `doc/dev/notes/authcert-in-consensus.md`.
| * | | | | tor-netdoc: Abolish poc's AuthCert (rustfmt)Ian Jackson2026-01-152-8/+3
| | | | | |
| * | | | | tor-netdoc: Abolish poc's AuthCertIan Jackson2026-01-154-109/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can use the real AuthCert now that it implements the parse2 traits. The verification function is still used by poc's netstatus code and by a test case. We must change the field names in a few places, because the real AuthCert's struct field names are the keywords, whereas the poc's are the key names. (A shame that they're different!)
| * | | | | tor-netdoc: Prepare poc's DirAuthKeyCertSigned::verify_selfcertIan Jackson2026-01-151-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use accessors for the body. (Eventually this function will replace, be replaced by, or merge with, the existing signature code outside poc.)
| * | | | | tor-netdoc: Add an error variant we'll need for parsing embedded docsIan Jackson2026-01-151-0/+3
| | | | | |
| * | | | | tor-netdoc: Improve Keyword API slightlyIan Jackson2026-01-152-1/+13
| | | | | |
* | | | | | Merge branch 'dirmirror-authcert' into 'main'Clara Engler2026-01-1513-65/+945
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement authority certificate management See merge request tpo/core/arti!3561
| * | | | | | tor-dirserver: Small pre-merge fixesClara Engler2026-01-152-3/+2
| | | | | | |
| * | | | | | tor-dirserver: Add TODO wrt hex::encode_upperClara Engler2026-01-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding a comment suggesting to implement this as part of abstracting `Sha256` behind a more generic identifier.
| * | | | | | tor-dirserver: Fix clippy warningClara Engler2026-01-151-1/+1
| | | | | | |
| * | | | | | tor-dirserver: Use `INSERT OR REPLACE`Clara Engler2026-01-151-2/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit rpelaces the use of `INSERT` with `INSERT OR REPLACE` for handling insertion conflicts in `store_insert`. Because everything is content-addressed anyways, it does not matter to do this, because if we get a conflict on a SHA256, it means the data is equal.[1] [1]: Excluding SHA-2 collisions which are impractical as of 2026.
| * | | | | | tor-dirserver: Change store_insert logicClara Engler2026-01-152-49/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit modifies the database::store_insert logic to accept an iterator of the encodings to store the document in, instead of encoding it with all encodings we support.
| * | | | | | tor-netdoc: Change error variantsClara Engler2026-01-153-18/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes `ErrorProblem::Other` to `ErrorProblem::OtherBadDocument` while adding two new variants: * `ErrorProblem::Internal` * `ErrorProblem::BadApiUsage`
| * | | | | | tor-dirserver: Remove algorithm CHECK constraintClara Engler2026-01-151-2/+1
| | | | | | |
| * | | | | | tor-dirserver: Add TODO for hash agnostic type alias nameClara Engler2026-01-151-0/+1
| | | | | | |
| * | | | | | tor-dirmirror: Handle unparsable certificatesClara Engler2026-01-151-8/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of failing, add them to missing and query them again.
| * | | | | | tor-dirserver: Improve note on query performanceClara Engler2026-01-151-6/+8
| | | | | | |
| * | | | | | tor-dirserver: Fix formulationClara Engler2026-01-151-1/+1
| | | | | | |
| * | | | | | tor-dirserver: Implement authcert retrieval logicClara Engler2026-01-153-4/+280
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements the logic necessary to retrieve the (missing) directory authority certificates from an upstream directory authority. In order to do so, this commit implements three new functions: 1. `download_authority_certificates()` 2. `parse_authority_certificates()` 3. `verify_authority_certificates()` 4. `insert_authority_certificates()`
| * | | | | | parse2: OOB check for parse_netdoc_multiple_with_offsetsClara Engler2026-01-151-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds an out-of-bounds memory check to parse2::parse_netdoc_multiple_with_offsets while adding the guarantee that interfacing applications do not need to validate the returned usize values to be in-range.
| * | | | | | tor-dirserver: Ensure algorithm with CHECKClara Engler2026-01-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a CHECK constraint to the compressed_document table in order to ensure that `algorithm` may only take up a limited set of values.
| * | | | | | tor-dirserver: Move ContentEncoding to databaseClara Engler2026-01-152-20/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit moves the ContentEncoding enum from the http module to the database module, primarily because the content encoding is more of a matter to the database, as this is where the data actually resides.
| * | | | | | tor-dirserver: Support for inserting into storeClara Engler2026-01-154-10/+227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements support for adding arbitrary documents into the store table. It is non-trivial because the relevant data has to be compressed into various formats, so it can be retrieved without delays.
| * | | | | | tor-dirserver: Test authcert queryingClara Engler2026-01-154-0/+139
| | | | | | |
| * | | | | | tor-dirserver: Operation test refactoringClara Engler2026-01-151-9/+7
| | | | | | |
| * | | | | | tor-dirserver: Add get_recent_authority_certificatesClara Engler2026-01-152-3/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the `get_recent_authority_certificates()` function to the operation of a directory mirror, which is responsible for looking up the certificates in the database, returning the parsed found ones as well as the missing ones.
| * | | | | | tor-dirserver: `From<Timestamp> for SystemTime`Clara Engler2026-01-151-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reverse direction already exists and it will be required when we act with functions outside the crate that only accept a `SystemTime` in situations where we just have a `Timestamp`.