summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | proto: fix doc mismatch in benchmarksLionel Goffaux2025-05-142-2/+2
| | | | |
| * | | | proto: fix doc typosLionel Goffaux2025-05-149-11/+11
| | | | |
| * | | | proto: change bench measurementLionel Goffaux2025-05-1311-190/+95
| |/ / /
* | | | Merge branch 'msrv-1.83' into 'main'gabi-2502025-05-1471-80/+74
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | Update MSRV to 1.83; bump gitlab-ci recent-image to 1.86. Closes #1869 See merge request tpo/core/arti!2999
| * | | gitlab-ci.yml: Update "RECENT_RUST_IMAGE" to 1.86.Nick Mathewson2025-05-131-1/+1
| | | |
| * | | Update readme: MSRV is 1.83Nick Mathewson2025-05-131-1/+1
| | | |
| * | | Resolve clippy warnings from 1.83Nick Mathewson2025-05-137-15/+9
| | | | | | | | | | | | | | | | | | | | Now that our MSRV is 1.83, clippy is happy to make more recommendations for us.
| * | | All crates: bump rust-version to 1.83.Nick Mathewson2025-05-1362-62/+62
| | | |
| * | | gitlab-ci: bump minimal-versions test to 1.83.Nick Mathewson2025-05-131-1/+1
| | | |
* | | | Merge branch 'integration-test-refactoring' into 'main'gabi-2502025-05-127-3/+219
|\ \ \ \ | |/ / / |/| | | | | | | | | | | arti: test: Refactor arti integration test See merge request tpo/core/arti!2955
| * | | arti: test: Refactor arti integration testhjrgrn2025-05-127-3/+219
|/ / / | | | | | | | | | | | | | | | | | | * arti: test: Restructure tests directory * arti: dep: Add assert_cmd dev-dependency * arti: test: Update README * doc: Fix hsc documentation
* | | Merge branch 'proto-extend-benchmarks' into 'main'Nick Mathewson2025-05-0916-338/+994
|\ \ \ | | | | | | | | | | | | | | | | tor-proto: extend benchmarks for CGO See merge request tpo/core/arti!2993
| * | | proto: use of Aes{128,256}{Dec,Enc} in the benchmarksLionel Goffaux2025-05-086-24/+24
| | | |
| * | | proto: fix name mismatch in the bench utils docLionel Goffaux2025-05-083-10/+10
| | | |
| * | | proto: fix typo s(t)ateLionel Goffaux2025-05-086-15/+15
| | | |
| * | | proto: extend benchmarksLionel Goffaux2025-05-0816-338/+994
| | | |
* | | | Merge branch 'repro-build-1.86' into 'main'David Goulet2025-05-083-16/+6
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | Update reproducible builds to use Rust 1.86 Closes #1335 See merge request tpo/core/arti!2992
| * | | Note a lingering mystery in reproduible_buildNick Mathewson2025-05-071-0/+3
| | | |
| * | | Remove MSRV-1.77 workarounds in reproducible_build script.Nick Mathewson2025-05-071-13/+0
| | | | | | | | | | | | | | | | | | | | Since it's using 1.86 now, there's no reason to downgrade these packages.
| * | | reproducible_build: use osxcross darwin linker with stdc++Nick Mathewson2025-05-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After upgrading to rust:1.86.0-alpine3.21, we got a new error: ``` osxcross: error: cannot find libc++ headers ``` To fix this, we change the linker to `x86_64-apple-darwin16-clang++-stdc++`. This invokes some osxcross magic that tells it to find the C++ headers in the stdc++ location... and possibly more.
| * | | Use rust:1.86-alpine-3.21 for reproducible builds.Nick Mathewson2025-05-072-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is sufficient to stop the osxcross errors ``` error: no member named 'lseek64' in the global namespace ``` that we encountered on our earlier attempt to increase our MSRV. Closes #1335.
* | | | Merge branch 'cgo_counter_0xC0' into 'main'Nick Mathewson2025-05-075-152/+150
|\ \ \ \ | |/ / / |/| | | | | | | | | | | proto: Clear low 6 bits of counter in CGO PRF. See merge request tpo/core/arti!2988
| * | | Use simpler way to refer to last byte of tag.Nick Mathewson2025-05-071-1/+1
| | | |
| * | | proto: Update CGO test vectorsNick Mathewson2025-05-074-149/+146
| | | | | | | | | | | | | | | | | | | | These were generated with an updated version of the python reference implementation.
| * | | proto: Clear low 6 bits of counter in CGO PRF.Nick Mathewson2025-05-071-3/+4
|/ / / | | | | | | | | | See torspec#332.
* | | Merge branch 'extend_EXTEND_extensions' into 'main'Nick Mathewson2025-05-0721-201/+450
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Circuit handshake extensions: Implement proposal 358, and SubprotocolRequest from proposal 346. Closes #1946 See merge request tpo/core/arti!2980
| * | | cell: Teach extlist definition macro to make conditional extensionsNick Mathewson2025-05-072-1/+7
| | | | | | | | | | | | | | | | | | | | We need the macro to propagate only certain #[meta] values to all places where a case is used.
| * | | Fix topological sort order of Cargo.toml.Nick Mathewson2025-05-071-1/+1
| | | |
| * | | cell: Implement SubprotocolRequest extension from prop346.Nick Mathewson2025-05-072-1/+139
| | | | | | | | | | | | | | | | Part of #1945.
| * | | protover: New `NumberedSubver` to represent a subprotocol capNick Mathewson2025-05-073-2/+86
| | | | | | | | | | | | | | | | | | | | This type differs from `NamedSubver` in that the represented subprotocol capability isn't necessarily recognized or valid.
| * | | protover: Change ProtoKind to be a u8Nick Mathewson2025-05-072-2/+4
| | | | | | | | | | | | | | | | | | | | It is not remotely close to exhausting a u8, and several of our protocols expect it to be expressible as one.
| * | | cell: Unify HS-ntor and ntor-v3 extensions.Nick Mathewson2025-05-076-32/+22
| | | | | | | | | | | | | | | | | | | | | | | | Implements proposal 358. Closes #1946.
| * | | cell,proto: Split request/response extensions into seprate typesNick Mathewson2025-05-075-36/+59
| | | | | | | | | | | | | | | | Implements part of proposal 358.
| * | | cell: Use ExtList to implement CircRequestExt.Nick Mathewson2025-05-077-122/+120
| | | | | | | | | | | | | | | | This required some renaming, so that the types and their codes matched.
| * | | Rename NtorV3Extension to CircRequestExtNick Mathewson2025-05-077-46/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This type will, because of prop358, be shared by ntorv3, hs-ntor, and probably other future handshakes. There will also be a CircResponseExt type.
| * | | cell: Make decl_extension_group macro more self-contained.Nick Mathewson2025-05-074-14/+21
| | | | | | | | | | | | | | | | Previously it required the caller to import a whole bunch of stuff.
| * | | cell: Clarify documentation in extlist.rs.Nick Mathewson2025-05-071-11/+10
| | | | | | | | | | | | | | | | It is no longer hs only.
| * | | cell: move ExtList module out of hs module.Nick Mathewson2025-05-076-7/+6
|/ / / | | | | | | | | | We're going to use it for ntorv3 extensions as well.
* | | Merge branch 'cgo-followups' into 'main'Nick Mathewson2025-05-0617-543/+659
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Refactor tor-proto and tor-cell in preparation for CGO Closes #1975 and #1956 See merge request tpo/core/arti!2972
| * | | tor_proto: name fields in bench_utils.Nick Mathewson2025-05-061-7/+10
| | | |
| * | | proto: Apply type-specific wrappers for tor1 cryptoNick Mathewson2025-05-066-79/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now instead of using CryptState for everything, we have specific types for each role and direction of crypto. This turned up a harmless-so-far bug in our onion service code: as an onion service, we were using _client_ crypto layers to respond to a client request. That's not correct, and wouldn't have worked with CGO. Instead, we need to use relay crypto layers, wrapped as client layers. Closes #1975.
| * | | proto, cell: Remove RelayCellFormatTrait.Nick Mathewson2025-05-0611-248/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The purpose of the trait was to parameterize the tor1 cell crypto on the different possible relay cell layouts. It made sense to have this trait when we thought we would implement the new cell layout for prop340 (packed-and-fragmented) well before we implemented CGO. But it now appears all but certain that CGO will land long before we make any more headway on prop340. Therefore, it doesn't make sense to carry the ability to customize `tor1` for other relay cell layouts. Removing this trait saves a fair bit of complexity.
| * | | tor-proto: Rename some no-longer-apt tor1 members.Nick Mathewson2025-05-061-14/+13
| | | |
| * | | tor-proto: remove some now-unneeded accessors.Nick Mathewson2025-05-061-35/+15
| | | |
| * | | Emit SendmeTag directly from cell crypto.Nick Mathewson2025-05-067-100/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the code to copy a SendmeTag rather than returning a slice. This isn't actually a big change: sending a slice already required 16 bytes (on 64-bit platforms), so sending a SendmeTag around isn't a big deal. We rely extensively on the compiler's ability to optimize away all the checking in code like this: ``` let slice: &[u8]; let a: [u8;N] = slice[0..N].try_into().expect("Nope"); ``` I've spot-checked it somewhat with "cargo-show-asm", but it could use more thorough checking. Closes #1956.
| * | | Remove the last traces of CircTag.Nick Mathewson2025-05-065-21/+19
| | | |
| * | | proto: Use SendmeTag in place of CircTagNick Mathewson2025-05-064-58/+13
| | | | | | | | | | | | | | | | | | | | This doesn't make much change yet, but does save us an allocation when handling SENDMEs.
| * | | tor-cell: define a new SendmeTag typeNick Mathewson2025-05-061-9/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a more efficient representation for the tag on an authenticated SENDME message: it comes in at 21 bytes. Previously, we used Vec<u8>, which has 24 bytes of overhead (on a 64 bit system), plus malloc overhead, plus 20 bytes of allocated tag. We had a similar type to this as `tor_proto::congestion::sendme::CircTag`, but it could only accomodate 20-byte values. I don't expect that we will have enough of these simultaneously that the memory savings will matter, but the allocation savings could be significant.
| * | | proto: Split out CGO BlkCipher trait for Encryption/DecryptionNick Mathewson2025-05-062-57/+172
|/ / / | | | | | | | | | | | | | | | This lets us use `Aes128Dec` and `Aes128Enc` in place of plain old `Aes128`, which can be less space-efficient depending on the back-end.
* | | Merge branch 'clientcirc_extend' into 'main'Nick Mathewson2025-05-066-25/+70
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-proto: New extend() and create_firsthop() to pick between ntor and ntor3 Closes #1970 See merge request tpo/core/arti!2967