Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into patch-v0.64.1
Browse files Browse the repository at this point in the history
  • Loading branch information
johanvos committed Jan 6, 2025
2 parents 7c8df43 + 4b78ebf commit 0e311b1
Show file tree
Hide file tree
Showing 173 changed files with 9,931 additions and 2,637 deletions.
1 change: 1 addition & 0 deletions .github/workflows/slow_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ env:
ANDROID_NDK_VERSION: 27.0.12077973
LIBSIGNAL_TESTING_ENCLAVE_SECRET: ${{secrets.SVR_ENCLAVE_SECRET}}
LIBSIGNAL_TESTING_CDSI_ENCLAVE_SECRET: ${{secrets.CDSI_ENCLAVE_SECRET}}
LIBSIGNAL_TESTING_RUN_NONHERMETIC_TESTS: true
RUST_LOG: debug

on:
Expand Down
83 changes: 71 additions & 12 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 5 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ signal-neon-futures = { path = "rust/bridge/node/futures" }
# Our forks of some dependencies, accessible as xxx_signal so that usages of them are obvious in source code. Crates
# that want to use the real things can depend on those directly.

boring-signal = { git = "https://github.com/signalapp/boring", tag = "signal-v4.9.0b", package = "boring", default-features = false }
boring-signal = { git = "https://github.com/signalapp/boring", tag = "signal-v4.13.0", package = "boring", default-features = false }
curve25519-dalek-signal = { git = 'https://github.com/signalapp/curve25519-dalek', package = "curve25519-dalek", tag = 'signal-curve25519-4.1.3' }
tokio-boring-signal = { git = "https://github.com/signalapp/boring", package = "tokio-boring", tag = "signal-v4.9.0b" }
tokio-boring-signal = { git = "https://github.com/signalapp/boring", package = "tokio-boring", tag = "signal-v4.13.0" }

aes = "0.8.3"
aes-gcm-siv = "0.11.1"
Expand Down Expand Up @@ -147,7 +147,7 @@ sha2 = "0.10"
snow = { version = "0.9.6", default-features = false, features = ["hfs"] }
static_assertions = "1.1"
strum = "0.26"
subtle = "2.5"
subtle = "2.6"
syn = "2.0"
syn-mid = "0.6"
test-case = "3.3"
Expand All @@ -156,13 +156,14 @@ thiserror = "1.0.57"
tokio = "1"
tokio-stream = "0.1.14"
uuid = "1.1.2"
visibility = "0.1.1"
x25519-dalek = "2.0.0"
zerocopy = "0.7.34"

[patch.crates-io]
# When building libsignal, just use our forks so we don't end up with two different versions of the libraries.

boring = { git = 'https://github.com/signalapp/boring', tag = 'signal-v4.9.0b' }
boring = { git = 'https://github.com/signalapp/boring', tag = 'signal-v4.13.0' }
curve25519-dalek = { git = 'https://github.com/signalapp/curve25519-dalek', tag = 'signal-curve25519-4.1.3' }

[profile.dev.package.argon2]
Expand Down
2 changes: 1 addition & 1 deletion LibSignalClient.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

Pod::Spec.new do |s|
s.name = 'LibSignalClient'
s.version = '0.62.0'
s.version = '0.64.1'
s.summary = 'A Swift wrapper library for communicating with the Signal messaging service.'

s.homepage = 'https://github.com/signalapp/libsignal'
Expand Down
9 changes: 9 additions & 0 deletions TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@ For the most part, libsignal is tested using each language's usual testing infra
However, sometimes there are some more interesting test configurations; those are documented here.


# Rust Benchmarks

- If you are testing on an ARM64 device (including Desktop), you should compile with `RUSTFLAGS="--cfg aes_armv8"` to enable hardware support in the `aes` crate.

- Similarly, although most tests are not very sensitive to the speed of SHA-2, you should also compile with `--features sha2/asm`. (`libsignal-message-backup` turns this on by default as a dev-dependency.) This will go away when we get to update to sha2 0.11.

All of these configuration options are normally set either at the bridge crate level or in the build scripts for each bridged platform, but they may not be set when running with plain `cargo bench`.


# Running cross-compiling Rust tests with custom runners

Rust allows running tests with cross-compiled targets, but normally that only works if your system supports executing the cross-compiled binary (like Intel targets on ARM64 macOS or Windows, or 32-bit targets on 64-bit Linux or Windows). However, by overriding the "runner" setting for a particular target, we can run cross-compiled tests as well.
Expand Down
Loading

0 comments on commit 0e311b1

Please sign in to comment.