aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-proto/src/crypto/cell/cgo.rs
Commit message (Collapse)AuthorAgeFilesLines
* Upgrade cipher, aes, and ctr.Nick Mathewson2026-07-131-9/+14
|
* maint: Run maint/add_warning to deny string slicesClara Engler2026-06-091-0/+1
| | | | | | | | | | | | This commit executes maint/add_warning with the just added change to deny string slices except in tests. I recommend auditing this by checking out the previous commit followed by running the script yourself and then verifying that the diff is identical to this commit. This commit makes cargo clippy fail. We will add exceptions in the next commit.
* Upgrade rand crates to 0.10.Wesley Aptekar-Cassels2026-05-121-1/+1
| | | | | | | | | | | When the circ-padding feature is enabled, we use maybenot, which does not yet support rand 0.10. In the meantime, enabling this feature pulls in rand 0.9. This is not ideal, but should be okay as a temporary situation. This also replaces the use of ReseedingRng (which was removed in 0.10) with the reseeding_rng crate. This is somewhat less performant, but it should be okay.
* proto: Upgrade to latest polyval.Nick Mathewson2026-03-041-2/+9
| | | | | | This will improve performance for CGO. Closes #2390.
* Fix name of clippy lint to unchecked_time_subtraction (2)Ian Jackson2025-11-061-1/+1
| | | | Run maint/add_warning
* tor-proto: Switched to "assert in const" patternhashcatHitman2025-09-011-2/+1
| | | | | | | Replaced use of [`static_assertions::const_assert`] with the newly available "assert in const" pattern. Signed-off-by: hashcatHitman <[email protected]>
* proto: Add a circuit module shared between client and relay impls.Gabriela Moldovan2025-08-281-1/+1
| | | | | | | This is just code motion (I suggest reviewing with `--color-moved`). This also moves the implementation-agnostic parts from `tor_proto::client::circuit` to a new `tor_proto::circuit` module.
* Switch Cargo.toml files to edition 2024.Nick Mathewson2025-08-071-3/+3
| | | | | | | | | | | | | | First, run ``` git grep -l "^edition =" | xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;' ``` Second, manually verify that all Cargo.toml files have changed, and nothing else has changed. Third, run cargo fmt again.
* tor-proto: Compile-time key length constant equality assertionhashcatHitman2025-06-241-6/+4
| | | | | | | - Made an equality assertion between two constants compile-time, resolving a TODO. Signed-off-by: hashcatHitman <[email protected]>
* proto: remove bench pub wrappersLionel Goffaux2025-05-221-88/+13
|
* proto: use consts for bench throuputsLionel Goffaux2025-05-141-0/+3
|
* proto: fix doc typosLionel Goffaux2025-05-141-2/+2
|
* proto: fix name mismatch in the bench utils docLionel Goffaux2025-05-081-4/+4
|
* proto: fix typo s(t)ateLionel Goffaux2025-05-081-3/+3
|
* proto: extend benchmarksLionel Goffaux2025-05-081-0/+93
|
* Use simpler way to refer to last byte of tag.Nick Mathewson2025-05-071-1/+1
|
* proto: Clear low 6 bits of counter in CGO PRF.Nick Mathewson2025-05-071-3/+4
| | | | See torspec#332.
* tor-proto: remove some now-unneeded accessors.Nick Mathewson2025-05-061-35/+15
|
* Emit SendmeTag directly from cell crypto.Nick Mathewson2025-05-061-41/+24
| | | | | | | | | | | | | | | | | | | | 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.
* proto: Split out CGO BlkCipher trait for Encryption/DecryptionNick Mathewson2025-05-061-55/+160
| | | | | | This lets us use `Aes128Dec` and `Aes128Enc` in place of plain old `Aes128`, which can be less space-efficient depending on the back-end.
* CGO: Fix authenticated-sendme tag handling.Nick Mathewson2025-04-291-5/+20
| | | | | | See discussion at torspec#328: it's important that our SENDME authentication tag always be taken based on the _encrypted_ cell.
* CGO: Note another possible performance improvement.Nick Mathewson2025-04-291-0/+3
|
* proto: Implement and test CGO cryptography.Nick Mathewson2025-04-291-13/+311
| | | | | | | | This provides all the operations from proposal 359, along with the necessary integration and unit tests to make sure that they are behaving properly. Closes #1943
* proto: Implement UIV+, the wide-block RPRP used for CGO.Nick Mathewson2025-04-291-1/+174
|
* proto: Implement CGO functions ET and PRFNick Mathewson2025-04-291-3/+321
| | | | | | | These are a tweakable block cipher, and a pseudorandom byte stream. This commit includes test vectors, which were generated from the Python reference implementation and confirmed with a less optimized Rust implementation.
* New empty CGO module.Nick Mathewson2025-04-291-0/+23