summaryrefslogtreecommitdiff
path: root/Cargo.lock
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Upgrade serial_test dev-dependency to 0.7.0Nick Mathewson2022-06-071-5/+6
| | |
* | | Upgrade float_eq dev-dependency to 1.0.0Nick Mathewson2022-06-071-2/+2
| | |
* | | Upgrade tls-api to latest versions in arti-hyper.Nick Mathewson2022-06-071-8/+9
| |/ |/|
* | New facility for deterministic and reproducible test PRNGs.Nick Mathewson2022-06-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | The new `testing_rng()` function is meant as a replacement for thread_rng() for use in unit tests. By default, it uses a randomly seeded RNG, but prints the seed before the test so that you can reproduce any failures that occur. You can override this via the environment to use a previous seed, or by using a deterministic seed for all your tests. Backend for #486.
* | arti config: Check that example config is exhaustiveIan Jackson2022-05-301-0/+3
|/ | | | This is the final piece of #457.
* Semantic version changes for Arti 0.4.0 releaseNick Mathewson2022-05-271-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | I followed the following procedure to make these changes: * I used maint/changed_crates to find out which crates had changed since 0.3.0. * I used grep and maint/list_crates to sort those crates in topological (dependency) order. * I looked through semver_status to find which crates were listed as having semver-relevant changes (new APIs and breaking changes). * I scanned through the git logs of the crates with no semver-relevant changes listed to confirm that, indeed, they had no changes. For those crates, I incremented their patch-level version _without_ changing the version that other crates depend on. * I scanned through the git logs of the crates with no semver-relevant changes listed to confirm that, indeed, they had no obvious breaking changes. * I treated all crates that depend on `arti` and/or `arti-client` as having breaking changes. * I identified crates that depend on crates that have changed, even if they have not changed themselves, and identified them as having a non-breaking change. * For all of the crates, I used `cargo set-version -p $CRATE --bump $STATUS` (where `STATUS` is `patch` or `minor`) to update the versions, and the depended-upon versions.
* Bump versions of trivially-changed crates.Nick Mathewson2022-05-271-7/+7
| | | | | | | | | | | | | | | | | | | These crates had only clippy fixes that do not affect their behavior: tor-bytes tor-cell tor-events tor-linkspec tor-netdir tor-socksproto This crate only had the cargo-husky dependency removed, which does not affect compatibility: tor-llcrypto Since these changes have no compatibility effects, it is not necessary to bump the versions of these crates which other crates depend on.
* Run "cargo update" in preparation for releaseNick Mathewson2022-05-271-4/+4
|
* Merge branch 'config-split' into 'main'Ian Jackson2022-05-261-0/+12
|\ | | | | | | | | | | | | Break TorClientConfig out of ArtiConfig and warn on unknown config keys Closes #459 and #417 See merge request tpo/core/arti!529
| * tor-config: Example for load moduleIan Jackson2022-05-241-0/+1
| |
| * tor-config: Support functions for tracking ignored config keysIan Jackson2022-05-241-0/+11
| | | | | | | | This turns out to need quite a complicated algorithm.
* | Run "cargo update" in preparation for the next release.Nick Mathewson2022-05-241-62/+48
|/
* Write custom serde impls for Trusted{User,Group}Nick Mathewson2022-05-241-0/+2
| | | | | | | | | | | | | | | | We support all of the following (in TOML notation): ``` user = "rose" # by name user = 413 # by ID user = false # no user user = ":current" # A 'special' user. user = { name: "rose" } user = { id: 413 } user = { special: ":none" } user = { special: ":current" } ```
* Add serde derives for MistrustBuilder.Nick Mathewson2022-05-241-0/+1
| | | | | | The Group and User (de)serialization is pretty ugly, and I can't vouch for the correcness of MistrustBuilder. I will seek feedback before I proceed.
* fs-mistrust: Add Group and User types.Nick Mathewson2022-05-241-0/+1
| | | | | This will help make the actual configuration more serializable, I hope.
* fs-mistrust: make Mistrust have a corresponding Builder type.Nick Mathewson2022-05-241-0/+1
| | | | | This is an approximately minimal revision to get Builder in place; subsequent commits will clean up the API.
* Update to newer sanitize-filename and tinystr.Nick Mathewson2022-05-231-4/+4
|
* channel: Provide and use Sink::prepare_send_fromIan Jackson2022-05-231-0/+4
| | | | | | | | | | | | | | | | | | | | This is a general-purpose implementation of the ad-hoc approach currently taken in (eg) crates/tor-proto/src/channel/reactor.rs, with an API intended to defned against the more obvious mistakes. This allows us to separate the two concerns: the channel reactor can focus on handling channel cells and control messages and is over 2.5x shorter. The complexity of the manual sink implementation, and the machinery needed to avoid having to suspend while holding an item, are dealt with separately. That separate implemenation now has proper documentation. (Tests are in the nest commit to avoid this one being even more unwieldy.) We use `extend` to define this as an extension trait. A competitor is `ext` but in my personal projects I have found `extend` slightly better.
* async-compression v0.3.12 -> v0.3.14Jim Newsome2022-05-201-8/+8
| | | | | | | This is to pick up https://github.com/Nemo157/async-compression/pull/148#issuecomment-1128862482 Fixes https://gitlab.torproject.org/tpo/core/arti/-/issues/473
* DirMgr: Improve display for DocSourceNick Mathewson2022-05-161-0/+1
| | | | (Also, implement Display for tor_dirclient::SourceInfo).
* Abolish arti-config, replacing with tombstone crateIan Jackson2022-05-131-17/+0
|
* arti-config abolition: Change references to use tor_configIan Jackson2022-05-131-0/+2
| | | | | | | | Generally, change the paths that mention the crate name to go via a module-level "use". This involves adding tor-config as a direct dependency for a few crates.
* arti-config abolition: Add deps to tor-configIan Jackson2022-05-131-0/+2
| | | | These are needed to support the code which is moving.
* arti-bench: Disable all fs permissions (fs-mistrust) checksIan Jackson2022-05-131-0/+1
| | | | | | | | | This is a benchmarking tool, and fs-mistrust doesn't like the permissions in our CI. The env var ARTI_FS_DISABLE_PERMISSION_CHECKS is (of course) specific to arti. Maybe it should be honoured here, or this should be done via the config files. But disabling this is fine for now.
* arti-example-config.toml: Re-un-comment the example settings in testIan Jackson2022-05-121-0/+1
|
* arti-config: Move cmdline to tor-configIan Jackson2022-05-111-0/+1
| | | | | | This does not know anything about arti, only about TOML and Config. Code motion, plus necessary import adjustments.
* ConfigurationSource: Move "usual" logic for constructionIan Jackson2022-05-111-0/+1
|
* Merge branch 'dirmgr-purification-2' into 'main'eta2022-05-101-0/+1
|\ | | | | | | | | Refactor the tor-dirmgr bootstrapping code more gracefully See merge request tpo/core/arti!488
| * tor-dirmgr/state.rs: feed through additional parameters, use themeta2022-05-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - The additional parameters passed to GetConsensusState are now passed through all the states, and used as well. - WriteNetDir doesn't have a now() or config() method any more, since the states now get this from the runtime or the config parameters. - This required modifying the tests to make a mocked runtime and custom config directly, instead of using DirRcv for this purpose. - Additionally, because we don't have to upgrade a weak reference for DirState::dl_config(), that function no longer wraps its return value in Result. - (A bunch of the FIXMEs from the previous commit that introduced the additional parameters have now been rectified as a result.)
* | Remove cargo-husky, and replace with manual instructionseta2022-05-101-7/+0
|/ | | | | | | | A build script reaching into your .git/hooks/ and modifying them nonconsensually was a bit of a horrifying concept, and also made it hard to build arti with the feature disabled. Remove this crate, and replace it with manual instructions on how to install the hooks in CONTRIBUTING.md.
* netdoc: add a new type for NicknamesNick Mathewson2022-05-091-0/+21
| | | | | | | | | | Relay nicknames are always between 1 and 19 characters long, and they're always ASCII: That means that storing them in a [u8;19] will always be possible, and always use less resources than storing them in a String. Fortunately, the tinystr crate already helps us with this kind of thing.
* Merge branch 'use-fs-mistrust'Nick Mathewson2022-05-091-0/+4
|\
| * arti: use fs-mistrust to validate configuration file locations.Nick Mathewson2022-05-091-0/+1
| |
| * arti-client: Configure and use fs-mistrust.Nick Mathewson2022-05-091-0/+3
| | | | | | | | | | | | This is derived from the environment, not the configuration file: We might not want to trust the configuration file until we've decided whether we like its permissions.
* | Bump the version of every* crate to 0.3.0Nick Mathewson2022-05-061-34/+34
| | | | | | | | * Except for safelog and fs-mistrust, which are new.
* | Merge branch 'derive-builder-fork' into 'main'Nick Mathewson2022-05-061-24/+27
|\ \ | | | | | | | | | | | | | | | | | | Switch to derive_builder_arti_fork Closes #446 See merge request tpo/core/arti!490
| * | Switch to derive_builder_arti_forkIan Jackson2022-05-061-24/+27
| |/ | | | | | | | | | | | | | | | | For reference, the git source for this crate (and the others in its workspace) currently lives in my personal github account (ijackson). If this fork turns out to be long-lived and gains features and/or users, it would be good to move it to a gitlab somewhere. I have granted Nick crate ownership on the crates.io system.
* | Apply `sensitive` in some info-level log messages.Nick Mathewson2022-05-061-0/+3
| | | | | | | | | | This specifically applies the `sensitive` wrapper in the places where we're logging target addresses at level "info" or higher.
* | Implement a safe-logging facility.Nick Mathewson2022-05-061-0/+66
|/ | | | | | This is a rough first-cut of an API that I think might help us with keeping limited categories of sensitive information out of our logs. I'll refine it based on experiences with using it.
* Run "cargo update" in preparation for a release... next week?Nick Mathewson2022-05-041-133/+133
|
* list_builder: Use Educe to derive DefaultIan Jackson2022-05-041-0/+1
| | | | | | This allows us to use this with an item builder type which doesn't impl Default. (Obviously this only makes sense for items which aren't actually builders.)
* Add dependency on paste crateIan Jackson2022-05-041-0/+1
| | | | The list accessor macro is going to want this.
* Merge branch 'path' into 'main'Ian Jackson2022-05-031-0/+32
|\ | | | | | | | | | | | | CfgPath overhaul Closes #449 See merge request tpo/core/arti!478
| * CfgPath: Test serialisation round-trip with a binary formatIan Jackson2022-05-031-0/+29
| | | | | | | | | | | | Use MessagePack. Signed-off-by: Ian Jackson <[email protected]>
| * CfgPath: Overhaul APIIan Jackson2022-05-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Document that this can contain either a string for expansion, or a literal PathBuf not for expansion. Rename the `from_path` method to `new_literal`: a very important difference is whether it gets expanded - less important than the Rust type. Also, now it takes `Into<PathBuf>`, which avoids a needless clone. (We don't change the API in `arti-client` because `&tempfile::Tempdir()` doesn't implement `Into<PathBuf>`, so `arti-client` has to have some new `as_ref` calls.) Provide accessors `as_unexpanded_str` and `as_literal_path`. The deserialisation already makes this part of the stable API,l so not pvoding accessors seems just obstructive. They are useful for tests, too. Add tests for the new entrypoints, and for deserialisation of both variants from TOML (via config, or directly) and JSON.
* | Merge branch 'fs-mistrust-v2' into 'main'Nick Mathewson2022-05-031-0/+23
|\ \ | |/ |/| | | | | Second cut at a fs-mistrust crate. See merge request tpo/core/arti!468
| * fs-mistrust: Add code to make a self-named group "trusted".Nick Mathewson2022-05-031-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This required a bit of poking through the `users` crate, to mess with the user and group dbs. The original goal was to "trust the group with the same name as us", but it turned into a bit of a production, since: * We want to take our own name from $USER, assuming that matches our uid. (Otherwise we want to ask getpwuid_r().) * We only want to trust the group if we are actually a member of that group. * We want to cache this information. * We want to test this code.
| * fs-mistrust: more examples, documentation.Nick Mathewson2022-05-031-0/+1
| |
| * Add functionality to inspect directory content permissionsNick Mathewson2022-05-031-0/+1
| | | | | | | | Also, explain _why_ this is pretty important.
| * Second cut at a fs-mistrust crate.Nick Mathewson2022-05-031-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This crate is meant to solve #315 by giving a way to make sure that a file or directory is only accessible by trusted users. I've tried to explain carefully (in comments and documentation) what this crate is doing and why, under the assumption that it will someday be read by another person like me who does _not_ live and breathe unix file permissions. The crate is still missing some key features, noted in the TODO section. It differs from the first version of the crate by taking a more principled approach to directory checking: it emulates the path lookup process (reading symlinks and all) one path change at a time, thus ensuring that we check every directory which could enable an untrusted user to get to our target file, _or_ which could enable them to get to any symlink that would get them to the target file. The API is also slightly different: It separates the `Mistrust` object (where you configure what you do or do not trust) from the `Verifier` (where you set up a check that you want to perform on a single object). Verifiers are set up to be a bit ephemeral, so that it is hard to accidentally declare that _every_ object is meant to be readable when you only mean that _some_ objects may be readable.