summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | proto: Add UnverifiedRelayChannel::build_auth_data()David Goulet2026-01-221-37/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reason for this is because both initiator and responder build the authentication data in order to send it (initiator) and validate it (responder). The build_auth_data() function takes a VerifiedChannel as an argument in order to access the CLOG/SLOG data and authentication data MUST always be handled after a channel is verified as in its CERTS has been checked. Take the opportunity also to add the NETINFO and relay identities data into the verified channel which will be needed to finalize the channel. The check() function is now missing the actual validation of the AUTHENTICATE for a responder which will come in the next commit(s). Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Implement RelayResponderHandshakeDavid Goulet2026-01-222-2/+264
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces the RelayResponderHandshake object used when accepting an inbound connection to open a channel. There are still TODOs pepperred in the code but the base is implemented. The Unverified and Verified channel need to be adjusted for this new handshake. This will come in the next commits. Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Add helper to build NETINFO cellDavid Goulet2026-01-221-13/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Again, as the CERTS helper, this is used by both initiator and responder handshake. Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Add a helper function to build CERTS cellDavid Goulet2026-01-221-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both initiator and responder send CERTS cell hence this helper. Signed-off-by: David Goulet <[email protected]>
| * | | | relay: Pass advertised addresses to the channel handlerDavid Goulet2026-01-2210-19/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need the advertised addresses for the NETINFO cell when opening a relay channel. Keep them in the TorRelay object so we can pass them to the ChanMgr channel handler. This will also help with config reload where only the local values in TorRelay will need to be updated. Signed-off-by: David Goulet <[email protected]>
| * | | | cert: Add cert_type() to RsaCrossertDavid Goulet2026-01-221-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is always the same type for this specific certificate. Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Make CERTS cell optionnable for UnverifiedChannelDavid Goulet2026-01-225-21/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This requires to make a series of cert and digest also optionnable in the VerifiedChannel. This change is needed because as a relay responder, you might get the CERTS or not depending on if the other side wants to authenticate. Client and bridges do not authenticate and thus it is expected to not have a CERTS cell. This leads to the UnverifiedChannel::check() function to return early with a VerifiedChannel without any identity attached to it. Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Move relay channel related structs outside of handshake.rsDavid Goulet2026-01-222-269/+272
| | |_|/ | |/| | | | | | | | | | | | | | | | | | Code movement only. Signed-off-by: David Goulet <[email protected]>
* | | | Merge branch 'rate-limit' into 'main'David Goulet2026-01-221-9/+19
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | arti-relay: Change debug message to rate-limited warning See merge request tpo/core/arti!3602
| * | | arti-relay: change debug message to rate-limited warningSteven Engler2026-01-201-9/+19
| | |/ | |/|
* | | Merge branch 'database-refactoring' into 'main'Clara Engler2026-01-224-197/+245
|\ \ \ | |_|/ |/| | | | | | | | tor-dirserver: Refactorings in the database.rs module See merge request tpo/core/arti!3599
| * | tor-dirserver: Remove FromStr for DocumentIdClara Engler2026-01-223-39/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit removes FromStr for DocumentId because it was only used in testing anyways. Instead, it replaces it with a simple From<[u8; 32]> only enabled in test builds, which is sufficient for what we are trying to do. An alternative would be to make the inner field pub, but this seems to aggressive for a testing only thing.
| * | tor-dirserver: Add `sha2` to `router_descriptor`Clara Engler2026-01-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This comit adds a `sha2` column to `router_descriptor` alongside a `CHECK` to see whether it equals `docid`. The reason for this is simple: Microdescriptors are the only kind of documents that are queriable with a SHA2 hash. Previously, we would have simply used the `docid` column for this, but in order to abstract it better, a distinct column with this hash is better.
| * | tor-dirserver: Rename `doc_id` to `docid`Clara Engler2026-01-194-76/+75
| | | | | | | | | | | | | | | Because we went with `docid` in the database (due to `rowid`), it is only natural to call the code variables `docid` too.
| * | tor-dirserver: Rename sha256 to docid in schemaClara Engler2026-01-194-51/+51
| | | | | | | | | | | | | | | | | | This commit renames the sha256 column to docid for the reason that we agreed upon making the schema visible to all modules, so if we were to encapsulate docid properly, this change is only natural.
| * | tor-dirserver: Rename database meta tableClara Engler2026-01-191-16/+13
| | | | | | | | | | | | | | | This commit renames arti_dirmirror_schema_version to arti_dirserver_schema_version.
| * | database: Introduce DocumentIdClara Engler2026-01-195-136/+210
| | | | | | | | | | | | | | | | | | This commit introduces a new type in the database module named `DocumentId` for abstracting the underlying content-addressable hash algorithm we are using.
* | | Merge branch 'remove-legacy-dirauth' into 'main'Clara Engler2026-01-223-149/+48
|\ \ \ | | | | | | | | | | | | | | | | tor-dircommon: Remove legacy authority syntax See merge request tpo/core/arti!3597
| * | | tor-dircommon: De-duplicate example from AuthorityContactClara Engler2026-01-221-35/+0
| | | |
| * | | arti: Fix commented out comment in exampleClara Engler2026-01-221-1/+1
| | | |
| * | | tor-dircommon: Fix clippy warningClara Engler2026-01-221-1/+1
| | | |
| * | | tor-dircommon: Remove legacy authority syntaxClara Engler2026-01-222-149/+16
| | | | | | | | | | | | | | | | | | | | | | | | Because arti 2.0 is pending, it is good to get rid of technical debt, such as the legacy syntax for specifying directory authorities, which had been replaced by prop330 a few months ago.
| * | | tor-dircommon: Document prop330 syntax betterClara Engler2026-01-222-1/+68
|/ / / | | | | | | | | | | | | This commit adds more documentation/examples for the prop330 syntax for specifying directory authorities.
* | | Merge branch 'stateless-download-mgr' into 'main'Clara Engler2026-01-222-53/+55
|\ \ \ | | | | | | | | | | | | | | | | tor-dirserver: Make downloader stateless See merge request tpo/core/arti!3601
| * | | tor-dirserver: Make downloader statelessClara Engler2026-01-202-53/+55
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit makes the downloader found in `mirror::operation::download` stateless by removing the `preferred_authority` field and changing all methods from `&mut self` to `&self`. The preferred authority is now accepted as a parameter to `DownloadManager::download` which also returns a tuple now with the actually used authority alongside the response, putting the management of this to the responsibility of the caller. Meanwhile, it also renames the structure from `ConsensusBoundDownloader` to `DownloadManager` because it no longer keeps a state that invalidates after a consensus "ends". The purpose of this is to simplify overall state in order to make the implementation of a finite-state-machine for the dirmirror operation more easy (and deterministic).
* | | Merge branch 'bump-chutney-2026-01' into 'main'Jim Newsome2026-01-2113-79/+52
|\ \ \ | |/ / |/| | | | | | | | Bump chutney See merge request tpo/core/arti!3604
| * | tests/chutney/setup: use shlex.quoteJim Newsome2026-01-211-6/+10
| | | | | | | | | | | | | | | | | | Previously this was naively wrapping strings in double-quotes. This works ok for escaping internal whitespace, but doesn't escape other special characters.
| * | Bump chutneyJim Newsome2026-01-215-8/+11
| | | | | | | | | | | | Bump chutney, and migrate to CLI changes introduced in chutney!101
| * | Bump blackJim Newsome2026-01-2110-65/+31
|/ /
* | Merge branch 'maint-naming' into 'main'Ian Jackson2026-01-2047-152/+198
|\ \ | | | | | | | | | | | | Use kebab case for all scripts in maint/ See merge request tpo/core/arti!3590
| * | Rename check-api-surface CI job and associated scriptIan Jackson2026-01-202-2/+2
| | | | | | | | | | | | | | | | | | | | | Change the script name to use hyphens, not underscores. Make the script name and the CI job name the same, except the script has -arti at the end in case we add more similar checks.
| * | maint/rust-maint-common/forbid-script-underscores: Look at gitIan Jackson2026-01-201-1/+4
| | | | | | | | | | | | This avoids tripping over things like `__pycache__`
| * | CI: Prevent new scripts with snake_case namesIan Jackson2026-01-201-0/+3
| | |
| * | CI: Rename cbindgen job to more closely follow script invocationIan Jackson2026-01-201-1/+1
| | |
| * | Rename maint/list_crates to kebab-caseIan Jackson2026-01-2012-91/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Swap the symlink direction: now we have list_crates.py (the python module) with a symlink list-crates pointing to it. This allows the module to be imported but the command to be kebab case. The checking tooling doesn't understand this special arrangement. Lots of references to update!
| * | maint/rust-maint-common/forbid-script-extensions: Support exceptionsIan Jackson2026-01-201-2/+14
| | |
| * | Rename CI functions file to kebab-caseIan Jackson2026-01-202-1/+1
| | |
| * | Rename config file to kebab-caseIan Jackson2026-01-202-2/+2
| | |
| * | Remove maint/shellcheck_all compatibility linkIan Jackson2026-01-203-3/+2
| | | | | | | | | | | | | | | We're using maint/common/shellcheck-all now. The docs were inconsistent.
| * | maint: Rename reproducible build scripts to kebab caseIan Jackson2026-01-206-5/+5
| | | | | | | | | | | | We had both maint/docker-... and maint/docker_...
| * | maint: Rename miscellaneous scripts to kebab caseIan Jackson2026-01-2012-21/+21
| | |
| * | maint/rust-maint-common/forbid-script-underscores: Support exceptionsIan Jackson2026-01-201-2/+25
| | |
| * | CI: Rename cargo-crate-owners job to match scriptIan Jackson2026-01-201-1/+1
| | |
| * | Rename remaining maint/check_ to maint/check-Ian Jackson2026-01-2011-11/+11
| | |
| * | CI: Rename script and job to check-blocking-todosIan Jackson2026-01-202-2/+2
| | |
| * | Rename maint/check_tree to maint/check-cargo-treeIan Jackson2026-01-202-1/+1
| | |
| * | Rename maint/check_wildcard to check-wildcard-depsIan Jackson2026-01-202-1/+1
| | | | | | | | | | | | | | | Use kebab case, and also add the word deps. Otherwise it might refer to files or something.
| * | Rename cargo_audit and cargo_sort scripts to kebab-caseIan Jackson2026-01-204-3/+3
| | |
| * | maint: Rename script and job to cargo-check-targetsIan Jackson2026-01-202-2/+2
| | | | | | | | | | | | | | | | | | The job was called `check-targets` and the script was called `cargo_check_target`. Make them match. Use kebab case, and the plural (it checks multiple targets).
| * | CI: Add missing cache setting to jobs using via-cargo-install-in-ciIan Jackson2026-01-201-0/+6
|/ / | | | | | | As per the docs for that script.