diff options
| -rw-r--r-- | CHANGELOG.md | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c155a5ac..7dd4d2566 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,220 @@ This file describes changes in Arti through the current release. Once Arti is more mature, we may switch to using a separate changelog for each crate. +# Arti 1.1.1 — 1 February 2022 + +After months of work, we have a new release of Arti! +Arti 1.1.1 is an incremental release, and cleans up a few issues from +previous releases, including a few annoyances and limitations. + +More significantly, Arti 1.1.1 begins our work on [Onion Services]. +This code won't be finished till later this year, but you can read about +our process below. + +### Breaking changes in lower level crates + +- Some accessors for the message types in [`tor-cell`] are renamed. ([#608], + [!948]) + +### New features + +- When logging an error at severity `info` or higher, we now (sometimes) + include a full report of the error's sources. Previously we only + logged the higest-level error, which often lacked enough detail to + make a full diagnosis. This work will be completed in a subsequent + release.([!936]) +- When asked via SOCKS to resolve an address that is already an IP + address, we now just return the same address, rather than asking the + Tor network. ([#714], [!957]) +- There is a new release profile, `quicktest`, for development purposes. + It should run faster than `debug`, but compile faster than `release`. + It is meant for quick integration and acceptance test purposes. + ([#639], [!960]) +- The `TorClient` object now exposes a [`set_stream_prefs`] API to let + callers change their stream settings without cloning a new + `TorClient`. ([#718], [!977]) + +### Onion service development + +- There is now an unimplemented draft set of high-level and low-level + APIs throughout our codebase that we will need to implement onion + services. These not-yet-functional APIs are gated behind the + `onion-client` and `onion-service` features. They are not covered by + semantic versioning; we will use them to guide our implementation + efforts in the coming months. ([#525], [#716], [!959], [!966], [!969], + [!970], [!971], [!972], [!974]) +- We have implemented the private-key version of the key-blinding algorithm + used in onion services. ([#719], [!964]) +- We now parse and expose consensus network parameters related to onion + services. ([!968]) +- Our SOCKS backend now supports returning the extended onion service + SOCKS result codes from [proposal 304]. ([#736], [!978]) +- The `tor-netdoc` crate now has a (not-yet-used) backend for + constructing documents in Tor's metaformat. ([!969], [!984]) +- Implement the lower level cryptographic key types + (and some of the cryptographic algorithms) used by onion + services. ([#684], [#742], [!980]) +- Add support for parsing [Shared Random Values] from consensus + documents, including the extensions from [proposal 342]. +- In `tor-netdir`, implement the algorithms for determining the current + time period and constructing the cryptographic parameters for each + period's HsDir ring. ([#686], [!987]) + + +### Network updates + +- Update to the latest identity key for the directory authority `moria1`. + ([!922]) +- Retire the directory authority `faravahar`. ([!924], [tor#40688]) + +### Testing + +- Upgrade to a newer version of the [Shadow] simulator, and use it to + test Arti with bridges. ([#651], [!915]) +- More tests for our safe-logging features. ([!928]) +- More tests for error cases in persistent-data manager. ([!930]) +- We now have a standard block of `clippy` exceptions that we allow in our + test code, and we apply it uniformly. ([!937]) +- In our Shadow scripts, use bare paths to find `tor` and `tgen`. ([!949]) + +### Documentation + +- Move internal-facing documentation into a `doc/dev` subdirectory, so that + it's easy for downstream users to ignore it. ([#576], [!921]) +- Make the summary line style consistent across our `README` files, + and make the crate list in [`Architecture.md`] match. ([!951]) +- Add more high level documentation to [`Architecture.md`], including a + rough crate-dependency diagram, and an object model diagram for our + manager types. ([#624], [!963]) + +### Example code + +- Make the `arti-hyper` example code compile and work correctly on + OSX. ([#569], [#715], [!958]) + +### Cleanups, minor features, and bugfixes + +- Use Rust 1.60's [conditional dependency] feature to simplify our + dependency and feature logic. ([#434], [!920]) +- Upgrade to [`shellexpand`] 3.x. ([!927]) +- The `unwrap` method on [`Sensitive`] is renamed to `into_inner`; `unwrap` + is now deprecated. ([!926]) +- Clean up tests to use [`humantime`] more, and to specify fewer times as raw + integers. ([#663], [!931], [!941], [!942], [!943]) +- We now use a low-level [`CtByteArray`] type to handle the common case + of declaring a fixed-length array that should always be compared in + constant time. ([!962]) +- There is now much more diagnostic logging in the pluggable transport + IPC code, and for connection launching. + ([#677], [!923]) +- We have labeled more data throughout our logs and error messages as + "sensitive" for logging purposes. ([#556], [!934], [!986]) +- We've migrated all of our base64 parsing to [`base64ct`]. (This + work began with [!600] in Arti 0.5.0; now we have migrated even the + parsing that doesn't _need_ to be constant-time, under the theory + that having only one implementation is probably better.) + ([889206cde4ef29d]) +- Our scripts now all indirect through `/usr/bin/env`, to support + platforms that don't put `bash` in `/bin`. ([!988]) +- Clean up various warnings introduced in Rust 1.67 ([#748], [#749], [!992]) +- Numerous spelling fixes. + + +Thanks to everyone who has contributed to this release, including +Alexander Færøy, coral, Dimitris Apostolou, Emil Engler, Jim Newsome, +Michael van Straten, Neel Chauhan, and Trinity Pointard. + +Also, our deep thanks to [Zcash Community Grants] for funding the +development of Arti 1.1.1! + + +[!600]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/600 +[!915]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/915 +[!920]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/920 +[!921]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/921 +[!922]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/922 +[!923]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/923 +[!924]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/924 +[!926]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/926 +[!927]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/927 +[!928]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/928 +[!930]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/930 +[!931]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/931 +[!934]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/934 +[!936]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/936 +[!937]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/937 +[!941]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/941 +[!942]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/942 +[!943]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/943 +[!948]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/948 +[!949]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/949 +[!951]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/951 +[!957]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/957 +[!958]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/958 +[!959]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/959 +[!960]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/960 +[!962]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/962 +[!963]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/963 +[!964]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/964 +[!966]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/966 +[!968]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/968 +[!969]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/969 +[!970]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/970 +[!971]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/971 +[!972]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/972 +[!974]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/974 +[!977]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/977 +[!978]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/978 +[!980]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/980 +[!984]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/984 +[!986]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/986 +[!987]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/987 +[!988]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/988 +[!992]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/992 +[#434]: https://gitlab.torproject.org/tpo/core/arti/-/issues/434 +[#525]: https://gitlab.torproject.org/tpo/core/arti/-/issues/525 +[#556]: https://gitlab.torproject.org/tpo/core/arti/-/issues/556 +[#569]: https://gitlab.torproject.org/tpo/core/arti/-/issues/569 +[#576]: https://gitlab.torproject.org/tpo/core/arti/-/issues/576 +[#608]: https://gitlab.torproject.org/tpo/core/arti/-/issues/608 +[#624]: https://gitlab.torproject.org/tpo/core/arti/-/issues/624 +[#639]: https://gitlab.torproject.org/tpo/core/arti/-/issues/639 +[#651]: https://gitlab.torproject.org/tpo/core/arti/-/issues/651 +[#663]: https://gitlab.torproject.org/tpo/core/arti/-/issues/663 +[#677]: https://gitlab.torproject.org/tpo/core/arti/-/issues/677 +[#684]: https://gitlab.torproject.org/tpo/core/arti/-/issues/684 +[#686]: https://gitlab.torproject.org/tpo/core/arti/-/issues/686 +[#714]: https://gitlab.torproject.org/tpo/core/arti/-/issues/714 +[#715]: https://gitlab.torproject.org/tpo/core/arti/-/issues/715 +[#716]: https://gitlab.torproject.org/tpo/core/arti/-/issues/716 +[#718]: https://gitlab.torproject.org/tpo/core/arti/-/issues/718 +[#719]: https://gitlab.torproject.org/tpo/core/arti/-/issues/719 +[#736]: https://gitlab.torproject.org/tpo/core/arti/-/issues/736 +[#742]: https://gitlab.torproject.org/tpo/core/arti/-/issues/742 +[#748]: https://gitlab.torproject.org/tpo/core/arti/-/issues/748 +[#749]: https://gitlab.torproject.org/tpo/core/arti/-/issues/749 +[889206cde4ef29d]: https://gitlab.torproject.org/tpo/core/arti/-/commit/889206cde4ef29d7d10bda546f8ad518eb09c290 +[Onion Services]: https://community.torproject.org/onion-services/ +[Shadow]: https://shadow.github.io/ +[Shared Random Values]: https://blog.torproject.org/mission-montreal-building-next-generation-onion-services/ +[Zcash Community Grants]: https://zcashcommunitygrants.org/ +[`Architecture.md`]: https://gitlab.torproject.org/tpo/core/arti/-/blob/main/doc/dev/Architecture.md +[`CtByteArray`]: https://tpo.pages.torproject.net/core/doc/rust/tor_llcrypto/util/ct/struct.CtByteArray.html +[`Sensitive`]: https://tpo.pages.torproject.net/core/doc/rust/safelog/struct.Sensitive.html +[`base64ct`]: https://crates.io/crates/base64ct +[`humantime`]: https://crates.io/crates/humantime +[`set_stream_prefs`]: https://tpo.pages.torproject.net/core/doc/rust/arti_client/struct.TorClient.html#method.set_stream_prefs +[`shellexpand`]: https://crates.io/crates/shellexpand +[`tor-cell`]: https://tpo.pages.torproject.net/core/doc/rust/tor_cell/index.html +[conditional dependency]: https://blog.rust-lang.org/2022/04/07/Rust-1.60.0.html#new-syntax-for-cargo-features +[proposal 304]: https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/proposals/304-socks5-extending-hs-error-codes.txt +[proposal 342]: https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/proposals/342-decouple-hs-interval.md +[tor#40688]: https://gitlab.torproject.org/tpo/core/tor/-/issues/40688 + + + + + # Arti 1.1.0 — 30 November 2022 Arti 1.1.0 adds support for Tor's anti-censorship features: Bridges |
