0
0
mirror of https://github.com/signalapp/libsignal.git synced 2024-09-19 19:42:19 +02:00
Commit Graph

65 Commits

Author SHA1 Message Date
moiseev-signal
6b5b0429c9
Add mac_setup script. 2024-09-13 16:37:50 -07:00
Jonathan Klabunde Tomer
0453438d98
Prepare libsignal-server Java build for arm64 2024-07-30 13:37:55 -07:00
Jordan Rose
773530ecd1 Add type annotations to all our Python scripts
The main benefit of this is not our *own* type-checking; it's that
mypy will error out if you try to use a too-new Python API. And in
fact, we were already relying on Python 3.9 and didn't realize.

check_code_size.py works with JSON, so it still uses Any a fair bit.
2024-07-09 17:01:10 -07:00
Alex Konradi
0e4d420f69
Add libsignal-jni-testing crate with test-only functions for Java
This parallels the exiting libsignal-jni crate but exports functions from 
libsignal-bridge-testing instead of libsignal-bridge. The crate is compiled as 
a separate shared object that is included in the published libsignal package, 
but which can be excluded at Android packaging time.
2024-07-09 13:07:36 -04:00
Alex Konradi
bb44874400
Use a single source of truth for version file list 2024-06-26 14:11:04 -04:00
Jordan Rose
af4821846e Add a --debug-level-logs option to build_ffi.sh
This allows enabling debug- and trace-level logs even in a release
build. (This also means the job of filtering *out* those logs has been
moved up to build_ffi.sh, where previously it was specified in the
leaf crate's Cargo.toml.)
2024-06-13 12:08:31 -07:00
Alex Konradi
e240e90593
Reduce code duplication due to monomorphization 2024-05-30 15:34:29 -04:00
Jordan Rose
8b0f6f27a3 cargo update 2024-05-28 13:14:32 -07:00
Sergey Skrobotov
ab733bf00a libsignal-net: support for User-Agent header 2024-05-01 20:02:08 -07:00
Jordan Rose
17ec3fe942 crates_code_size: Add a special case to recognize BoringSSL 2024-05-01 13:39:04 -07:00
Jordan Rose
ab2144e203 net: Replace rustls-native-certs with rustls-platform-verifier
This (1) actually works on iOS and Android, and (2) will likely be
more full-featured and better-supported going forward. But it does
mean plugging one system's certificate verifier (rustls) into
another's TLS implementation (BoringSSL). Still, having *all* of
rustls used alongside BoringSSL would be redundant.
2024-04-24 13:14:05 -07:00
Jordan Rose
9e15106ee2 crates_code_size: "Fix" empty-labeled item in report
Some lines just have "src/foo.rs" in their debug info, for unclear
reasons. We could collect them into an "unknown crates" bucket, but
that isn't very useful either. This tweak just prevents them from
being collected into a line with no label.
2024-03-18 11:58:25 -07:00
Jordan Rose
7e3965f01b
Update Rust dependencies
- `cargo update`, except clap and assert_cmd, which bumped their MSRV
- net: Update hyper and hyper-body-util off of RCs
- attest: Update asn1
2024-03-11 17:42:57 -07:00
Jordan Rose
3db0fe60dc Update pqcrypto-kyber (again) 2024-01-03 11:01:43 -08:00
Jordan Rose
be1457c87d Update pqcrypto-kyber 2023-12-22 14:09:47 -08:00
Jordan Rose
d952869106 CI: Include the cargo-about version in the local tools cache key
GitHub was restoring the 0.5.7 cache, and then not updating the cache
after installing 0.6.0 because it was successfully restored.
2023-12-20 14:03:04 -08:00
Alex Konradi
acabde87e2 Use cargo-about 0.6.0 to produce acknowledgements
The new version introduced a couple changes that are reflected here:

- Rename override_git_commit -> override-git-commit in about.toml since
  that's now the canonical spelling.
- Regenerate the license list since a bug was fixed that changed the
  semantics of the count.

Also pin the version in our documentation and in the script to prevent
differences in behavior depending on when cargo-about was installed on
developer machines.
2023-12-13 14:52:31 -05:00
Jordan Rose
88a25e889e Collect acknowledgments for libsignal's Cargo dependencies 2023-12-11 16:39:33 -08:00
Jordan Rose
61f2cda107 Add TESTING.md, document how to run Rust tests on emulators 2023-10-27 10:25:27 -07:00
Jordan Rose
ac8a0522b9 crates_code_size.bloaty: Add paths used by newer rustc 2023-10-18 13:28:44 -07:00
Rolfe Schmidt
0670f0dc4c
Add implementation of NIST standard ML-KEM 1024 (#367)
Co-authored-by: Jordan Rose <jrose@signal.org>
2023-10-16 16:19:38 -06:00
Jordan Rose
afaf508742 Update boring crate 2023-10-16 11:37:26 -07:00
Jordan Rose
d551d0912e verify_duplicate_crates: Run specifically on the mobile targets
Previously this ran only for the host target, which fortunately
matched the mobile results for our development platforms and CI.
2023-10-13 14:13:23 -07:00
Jordan Rose
e94dc9cf3c verify_duplicate_crates: Use improved --edges no-proc-macro
Previously this didn't compose correctly with `--duplicates` (`-d`),
but now it prunes out dependencies in proc-macros just like we already
were for non-"normal" dependencies (build and dev), allowing us to
maintain our focus on code size.

While here, prefer long forms of flags for more readable code, and
improve the comments around the dependencies we can't avoid
duplicating.
2023-09-14 06:25:59 -07:00
Jordan Rose
4331c12ce6 iOS: Stop building for Catalyst
This commit retains minimal *support* to build for Catalyst, but since
we won't be testing it anymore it could break at any time.
2023-08-25 12:22:13 -07:00
Jordan Rose
9aad792fc6
Update all the RustCrypto crates 2023-08-25 11:28:49 -07:00
Jordan Rose
b27f5c0f2e Gradle: Set version and group info in the root project
This will be necessary to adopt the Gradle Nexus publishing plugin,
but it's also just simpler.
2023-08-24 12:21:25 -07:00
moiseev-signal
c292fd9a84
Add tag_it.sh script to aid tagging 2023-08-09 15:05:56 -07:00
moiseev-signal
716e683324
Update dependencies following curve25519-dalek 4.0.0 release
Co-authored-by: Jordan Rose <jrose@signal.org>
2023-08-09 15:04:41 -07:00
Jordan Rose
df707cf57c verify_duplicate_crates: Remove comment about serde 2023-05-26 12:44:10 -07:00
Max Moiseev
dcfd0c1564 cargo update and fix the fallout (upgrade snow to 0.9.2) 2023-05-26 12:44:10 -07:00
Jordan Rose
4384f664f0 Update boring to require a newer version of bindgen
Necessary for certain targets on newer Rust.
2023-04-24 13:42:36 -07:00
Jordan Rose
5fef0c3c6e Update linkme for more reliable Node builds
libsignal-bridge uses linkme to make a big list of all functions
it's going to expose to Node. More recent linkme versions fix
issues where that list wasn't being preserved by linkers.
This manifested as a CI failure on Windows.
2023-04-18 17:24:03 -07:00
Ravi Khadiwala
1f8c279622 pin: Add pin hashing and an svr2 client
- Add a new SGX client that can be used for testing svr2
- Add pin hashing that can be used with svr1 and svr2
2023-03-29 13:59:28 -05:00
Jordan Rose
9c02d7a8cd Pods: Change the podspec to download prebuilds
Rather than building the Rust parts of libsignal as part of `pod
install`, fetch them from build-artifacts.signal.org. This requires
adding

    ENV['LIBSIGNAL_FFI_PREBUILD_CHECKSUM'] = '...'

to the consuming Podfile. The referenced archives are downloaded to
~/Library/Caches/org.signal.libsignal, and are unarchived as part of
the build. (The archives are outside the build directory so that a
clean build does not require a new download.)

Building with LibSignalClient as a local pod is still supported; in
that case everything will refer to the local target/ directory
instead. Use swift/build_ffi.sh to build as usual.
2023-01-12 16:47:28 -08:00
Jordan Rose
366b030841 Re-apply "device transfer: replace picky with boring"
This reverts commit 09c043c54a.
2022-06-22 16:33:21 -07:00
Jordan Rose
09c043c54a Revert "device transfer: replace picky with boring"
We need to work out more kinks cross-compiling boring-sys, so revert
this for now. (But keep the fix to use the correct Android NDK.)
2022-06-22 15:56:21 -07:00
Chris Eager
2b0b5119f2
device transfer: replace picky with boring
Upcoming work in `attest` requires additional X509 support, and swapping these libraries 
is a negligible impact on binary size. This uses a fork of `cloudflare/boring`, as
we have some additions that haven’t yet been contributed upstream.
2022-06-16 13:14:17 -07:00
Jordan Rose
ce3226b4e3 verify_duplicate_crates should exit 1 on failure 2022-06-02 12:18:14 -07:00
Jordan Rose
459938a3bc update_versions.py: accept both '0.1.2' and 'v0.1.2' 2022-04-04 12:25:33 -07:00
Jordan Rose
0542686e70 Update artifact/package/module names across all three app languages
- Java: org.whispersystems:signal-client-java ->
    org.signal:libsignal-client
- Java: org.whispersystems:signal-client-android ->
    org.signal:libsignal-android
- Java: org.whispersystems:libsignal-server ->
    org.signal:libsignal-server
- Swift: SignalClient -> LibSignalClient
- NPM: @signalapp/signal-client -> @signalapp/libsignal-client
- Repository: github.com/signalapp/libsignal-client ->
    github.com/signalapp/libsignal
2022-03-23 10:49:09 -07:00
Jordan Rose
a2182ca348 Update other Rust dependencies
This was done by `cargo update`, followed by reverting to earlier
versions of specific crates that have trouble on our current pinned
nightly.
2022-03-21 11:32:56 -07:00
Jordan Rose
43054913ed Java: Always include Mac and Windows support when publishing
Rather than have a separate "testable" artifact, always include Mac
and Windows versions of libsignal_jni.so when publishing
signal-client-java *and* libsignal_server (though not when just
building locally).

Also, finally attach these tasks to the correct step (processResources
rather than compileJava).
2022-03-10 13:36:26 -08:00
Jordan Rose
3fd42d7a60 Move package.json inside the node/ directory
Previously all APIs were available through the top-level index.ts, but
now the zkgroup APIs are in their own module. To access that in the
old packaging required writing

    import * from '@signalapp/signal-client/node/dist/zkgroup'

This commit moves the package root into the node/ directory to
eliminate the 'node/' component, then adds a top-level, precompiled
zkgroup.js/.d.ts so that clients can use

    import * from '@signalapp/signal-client/zkgroup'
2021-11-08 16:40:50 -08:00
Jordan Rose
48edcb2305 crates_code_size: Omit versions for better comparisons
Also account for cross-compilation build directories.
2021-10-06 11:24:18 -07:00
Jordan Rose
d6fc73b27a Update dependencies
- cargo update
- But stay on our fork of curve25519-dalek (pinned at 3.0.0)
- Update x25519-dalek from 1.0 to 1.1 (instead of 1.2) to stay
  compatible with curve25519-dalek
- Update cpufeatures to 2.1 to match our dependencies
- Note that updating picky* resulted in more duplicate crates (rand*)
- Pin num-bigint-dig to a build that supports Cargo's -Zbuild-std,
  because xargo + autocfg has stopped working with the new toolchain
- Remove xargo in favor of -Zbuild-std
2021-10-06 10:58:44 -07:00
Jordan Rose
a1f45b0af2 Add bin/update_versions.py to make it easier to do a release
We were already *reading* all these files (to check that the versions
were in sync); might as well *write* all the files as well.
2021-10-01 16:55:33 -07:00
Jordan Rose
093d82115c GitHub: Make sure lockfiles don't get rewritten during testing
Otherwise, we're not testing what we think we're testing.
2021-09-27 14:44:12 -07:00
Graeme Connell
9aa79c0c59 Client-side rust-only HSM enclave library. 2021-09-21 12:07:27 -06:00
Nora Trapp
720d796f76 Add support for M1 and Catalyst architectures via cocoapods 2021-06-10 11:34:10 -07:00