0
0
mirror of https://github.com/signalapp/libsignal.git synced 2024-09-20 03:52:17 +02:00
Commit Graph

1546 Commits

Author SHA1 Message Date
Max Moiseev
9822bb3b64 Implement benchmarks for usernames API 2023-02-13 13:30:17 -08:00
Max Moiseev
1ddbb95ad4 Allow writing a checksum file from ios_artifacts action 2023-02-13 11:21:23 -08:00
Max Moiseev
0bd497d5e8 Make tests more deterministic 2023-02-13 11:06:49 -08:00
Max Moiseev
58ebf5f06d Bump NDK version to match the Github runner update 2023-02-13 10:03:45 -08:00
Max Moiseev
39293fa906 Bump to version v0.22.2 2023-02-10 12:07:18 -08:00
Max Moiseev
f9317b583a Allow specifying private key serialization format 2023-02-10 10:23:41 -08:00
Max Moiseev
90c02f3b69 Bump to version v0.22.1 2023-02-09 11:45:09 -08:00
Max Moiseev
f1b6c63e34 Make Java API for username hashing more idiomatic 2023-02-09 11:18:24 -08:00
Max Moiseev
9bd2edc373 Add signature verification using certificate chain 2023-02-09 11:18:24 -08:00
Jordan Rose
61d6c8b3f0 CI: Put the libsignal_ffi prebuild checksum in the GitHub Release 2023-02-09 11:18:24 -08:00
Jordan Rose
06961fa2f8 GitHub: Use shasum (comes with macOS) instead of sha256sum (coreutils) 2023-02-09 11:18:24 -08:00
Max Moiseev
c98ed9cb6d Bump to version v0.22.0 2023-02-03 17:57:44 -08:00
Max Moiseev
33d8421ca9 Bridge username hashing APIs to all client platforms 2023-02-03 17:44:29 -08:00
Jordan Rose
1d64d160b3 RELEASE.md: Update iOS and Node build instructions 2023-02-03 17:34:19 -08:00
Jordan Rose
019e60498d Node: Update TypeScript, eslint, and prettier to match Desktop 2023-02-01 16:11:08 -08:00
Max Moiseev
731964f468 Implement username generation, hashing, and proofs 2023-02-01 10:52:12 -08:00
Ravi Khadiwala
1d358c3432 attest: update cds acceptable SW advisories 2023-01-27 13:25:01 -06:00
Ravi Khadiwala
eed1223abe attest: support v4 PCS API 2023-01-27 13:25:01 -06:00
Jordan Rose
63e45850c4 CI: Add a GitHub workflow to publish iOS prebuilds 2023-01-26 13:00:10 -08:00
Jordan Rose
5b3d8bb731 Remove Android 19 support 2023-01-26 12:59:06 -08: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
63f2cd10b4 Remove stray semicolon, caught by swiftlint 2023-01-12 16:47:28 -08:00
Jordan Rose
7d46c330b6 swift: Fix ScannableFingerprint.compare
Previously this took another ScannableFingerprint as an argument, but
that would only allow comparing against other fingerprints generated
by the local client. Accept any collection of bytes instead; the
underlying API will check the encoding.
2022-12-05 14:37:47 -08:00
Jordan Rose
942a45b3f5 GitHub: Add stale.yml 2022-12-05 12:33:48 -08:00
Jordan Rose
3c5f00fffe java: Fix host build / server testing on Windows
- We weren't loading the native library as "signal_jni.dll"
- The Gradle build commands, though still requiring a shell environment,
  shouldn't rely on Unix-style #! lines to execute shell scripts
2022-12-05 11:42:06 -08:00
Jordan Rose
bce62c7bfd Android: Build on platforms other than Linux
Right now the Android SDK never contains more than one prebuilt
toolchain, so we can glob to find the one that's installed.
2022-12-05 10:02:54 -08:00
Jordan Rose
b8ac70227d Android: no need to set ANDROID_NDK_HOME when using Gradle
The Android Gradle plugin already allows you to specify which NDK to
use; we should let the plugin find it for us.
2022-12-05 10:02:54 -08:00
Jordan Rose
98fd87ee9b Android: Add very basic Curve25519 benchmarks 2022-12-02 17:14:06 -08:00
Jordan Rose
f6e5f9772f Swift: Add Aes256Ctr32
AES-256-CTR is a cipher where encryption and decryption are the same,
since it uses XOR on the plaintext to produce the ciphertext.
2022-12-01 17:48:05 -08:00
Jordan Rose
f3e71dd537 Swift: Add Aes256GcmEncryptedData and Aes256Gcm{En,De}cryption
Aes256GcmEncryptedData contains APIs equivalent to what's in
SignalCoreKit's Cryptography class. Aes256GcmEncryption and
Aes256GcmDecryption support general AES-256-GCM operations, including
a "streaming" mode that Android uses to decrypt attachments without
the whole attachment being in-memory. iOS doesn't currently do this,
but it could in the future.

Also, moves the AES-GCM-SIV tests to a new file, CryptoTests, along
with the new AES-GCM test.
2022-12-01 17:48:05 -08:00
Jordan Rose
d1c30a27d0 Swift: use argument labels in Aes256GcmSiv class
This is technically a breaking change, but the iOS app isn't actually
using SignalClient's Aes256GcmSiv for anything at the moment.
2022-12-01 17:48:05 -08:00
Jordan Rose
572ba1e38b Update Rust to nightly-2022-11-03, and the Android NDK to r25b
These are intertwined: older versions of Rust don't support the newer
NDK, but the newer Rust can't successfully compile BoringSSL against
the older NDK.

This requires a boring-sys update to find the Android NDK sysroot in
the right place.
2022-12-01 12:23:57 -08:00
Jordan Rose
f9dededc4c Node: On Windows in GitHub CI, *always* use $TMP as the build dir
Follow-up to ec4faf26 where we tried to guess if the build directory
path was short enough for non-long-path-aware build tools. Give up on
that and just always use $RUNNER_TEMP if that's shorter.
2022-12-01 10:31:56 -08:00
Jordan Rose
9a4610c69c Update release instructions to mention tagging 'boring' 2022-11-10 14:20:42 -08:00
Jordan Rose
a6fcbcd97a Update boring
This includes
- a handful of fixes from upstream
- support for building for ARMv7 Linux (thanks, morph027!)
2022-11-10 14:20:15 -08:00
Jordan Rose
221174b626
Update GitHub actions
And
- Use modern output-setting syntax
- Replace actions-rs/toolchain and JS-DevTools/npm-publish
- Use setup-node's node-version-file argument instead of reading
  from .nvmrc manually.
- Pin dorny/paths-filter
- Replace svenstaro/upload-release-action with ncipollo/release-action
2022-11-09 09:46:12 -08:00
Danny McClanahan
8a72cda5ac [#468] add docs to storage.rs
- [+INMEM/TRAITS] documentation for the store interfaces and impls
2022-11-02 11:31:28 -07:00
Danny McClanahan
af8cd3d1ef [#472] remove Debug from SessionRecord
- also add a cheap Debug impl for PrivateKey which leaks no info
2022-11-02 11:31:28 -07:00
Jordan Rose
dd0315ad26 Bump to version v0.21.1 2022-10-20 13:04:57 -07:00
Chris Eager
9c23f8dd8a attest: add INTEL-SA-00657 to acceptable advisories 2022-10-20 13:25:03 -05:00
Sebastian
ad1fabbbf2 Change getSender method of SenderCertificate to always return UUID
Currently the only user of this method is the ProtcolException constructor,
when a UnidentifiedSenderMessageContent is present.
All other instances of ProtocolException use the sender's UUID as sender.
So it would be good to have this consistent.

Also brings this in line with similar methods, like `getSourceIdentifier` on
SignalServiceEnvelope.
2022-10-17 12:13:53 -07:00
Jordan Rose
d94f1b3d70 Bump version to v0.21.0 2022-10-14 13:53:57 -07:00
Jordan Rose
26e7fa5559
zkgroup: Remove v1 presentations
Removes AuthCredentialPresentationV1 and PniCredentialPresentationV1
entirely. For ProfileKeyCredentialPresentationV1, there are still
situations where we want to extract the UUID and profile key, so we
continue to support parsing only.
2022-10-13 15:46:36 -07:00
Jordan Rose
f71e1c6693 Use "Signal Messenger LLC" as the author of all packages
(the copyright holder)
2022-10-12 17:02:53 -07:00
Jordan Rose
4b8f868181 bridge: Avoid a conditionally-unused use jni::objects::JMap 2022-10-12 12:35:30 -07:00
gram-signal
2ebdfa05e2
Reject reports, even if valid, that contain all zeros in report data. 2022-09-27 10:07:36 -06:00
Jordan Rose
05813a42b9 benchmarks: Update to criterion 0.4.0
criterion 0.3.x had started warning about features being removed in
criterion 0.4 by default, such as automatically generating HTML
reports. That particular one did happen, but other planned removals
did not, so 0.4 ended up being an easy upgrade for us.
2022-09-12 13:15:51 -07:00
Jordan Rose
aead532aaf CocoaPods: Set IPHONEOS_DEPLOYMENT_TARGET, and bump it to 12.2
By default, Rust targets iOS 7, which is unnecessary but fine for our
purposes. However, BoringSSL has some assembly files that were getting
compiled for the "latest" version (based on the SDK). Address both of
these by setting IPHONEOS_DEPLOYMENT_TARGET explicitly when building
as a CocoaPod.

While here, bump the CocoaPod minimum iOS version to 12.2, which
matches the main Signal app and will allow SignalCoreKit to do the
same.
2022-08-30 14:39:52 -07:00
Jordan Rose
d270e06127 Docker: Use -it and --init to handle SIGTERM (^C) properly
-i (interactive) and -t (allocate a tty) allow the shell running
inside Docker to handle Ctrl-C (^C) and other shell commands, so you
can stop a command in the interactive process you ran it. However,
they only work if the containing shell (the one where you ran `docker
run`) is also interactive with a tty hooked up, so we test for that
first in both scripts that invoke `docker run`, using `test -t`.

--init passes signals from *outside* Docker down to its subprocesses,
so that cancellation from *another* context works for our Docker
images. This includes the Cancel button in GitHub Actions.
2022-08-23 13:31:30 -07:00
Jordan Rose
cbe7b8a86c GitHub: run Android tests in the emulator as part of the Slow Tests 2022-08-23 10:45:43 -07:00