Commit Graph

894 Commits

Author SHA1 Message Date
Andrew
85cba92588 Reset for version v0.84.1 2025-10-09 23:18:05 -04:00
andrew-signal
e8c2dabadc Add LIBSIGNAL_TESTING_IGNORE_KT_TESTS to skip key transparency tests while we await service recovery 2025-10-09 20:43:31 -04:00
Jordan Rose
4503a19190 Unify IdentityKeyPair_Deserialize implementations
...in the process revealing that the Java declaration had a missing
exception spec.
2025-10-09 11:31:20 -07:00
Jordan Rose
fb570d7c99 bridge: Add support for returning pairs from bridge_fns 2025-10-09 11:31:20 -07:00
Max Moiseev
d2258f52c2 Reset for version v0.83.1 2025-10-02 12:46:14 -07:00
gram-signal
533d11dd7c Remove usePqRatchet from client-facing code, defaulting to always use. 2025-10-02 11:32:36 -07:00
andrew-signal
2bc167b5a2 Add BuildVariant parsing/overload support to libsignal's Remote Config 2025-09-30 22:35:21 -04:00
Jordan Rose
41d8316e44 Reset for version v0.82.2 2025-09-30 12:18:10 -07:00
andrew-signal
90c66511dc Java: Update Android Gradle Plugin to 8.10.1 to match Signal-Android. 2025-09-29 14:19:58 -04:00
moiseev-signal
0e9c85c354 keytrans: Unify errors with other typed APIs 2025-09-26 11:47:40 -07:00
Jordan Rose
164e284423 bridge: Log on completing a future if many blocking tasks are live
This is a speculative log meant to see why the blocking thread pool
grows as large as it does for some people.
2025-09-26 09:45:03 -07:00
Andrew
15ac8b7c5f Reset for version v0.82.1 2025-09-25 11:51:36 -07:00
moiseev-signal
c81ec0df62 keytrans: Retry chat connection attempts in Java integration tests 2025-09-22 11:45:47 -07:00
andrew-signal
1adf63e4a8 Make CompletableFuture cancelation members volatile to conform with JMM 2025-09-22 11:39:31 -07:00
Alex Bakon
1f01c19e5f Convert libsignal-client node package to ESM 2025-09-22 14:20:16 -04:00
Andrew
9df30d1821 Reset for version v0.81.2 2025-09-18 12:38:40 -07:00
Jordan Rose
0143e2f69a Reset for version v0.81.1 2025-09-16 16:57:05 -07:00
Jordan Rose
51b11ca1c6 java: Add missing @CalledFromNative to ECPublicKey(long) 2025-09-16 16:55:35 -07:00
Jordan Rose
15af92c93d protocol: Record signed prekey and base key used with a Kyber prekey 2025-09-16 15:33:59 -07:00
Jordan Rose
f18b92ebe2 android: Add an explicit CertificateVerifier.shouldCheckRevocation
The default value is 'false', which is a change from upstream
rustls-platform-verifier, but consistent with the general platform
recommendations for certificate verification on Android, including
OkHttp's behavior.
2025-09-16 15:08:02 -07:00
Jordan Rose
5843f17141 java: Simplify build by including rustls' CertificateVerifier directly 2025-09-16 15:08:02 -07:00
moiseev-signal
1db21ca351 keytrans: Update the test account data 2025-09-16 11:07:10 -07:00
Jordan Rose
03d0b2b71f Reset for version v0.80.4 2025-09-11 13:53:02 -07:00
Andrew
173cb9b5a4 Reset for version v0.80.3 2025-09-10 16:55:18 -04:00
Jordan Rose
6f2d15be95 Reset for version v0.80.2 2025-09-09 16:19:35 -07:00
Jordan Rose
94f91c5b19 protocol: Add support for sealed sender server certificate references
Rather than embedding a server certificate inside every sender
certificate, future sender certificates will be able to reference
their server certificate by ID as long as all receivers have a version
of libsignal containing that certificate.

This change also handles the sender ACI being represented as bytes
instead of a string.
2025-09-09 14:13:23 -07:00
Andrew
d502ce0ec2 Reset for version v0.80.1 2025-09-05 14:20:13 -04:00
moiseev-signal
4675bb82a2 Desktop: add distinct type for incremental mac verification error 2025-09-03 16:40:58 -07:00
Andrew
1e9f50c840 Reset for version v0.79.2 2025-09-02 22:28:59 -04:00
andrew-signal
bc0227873e Bridge look_up_username_hash to app languages
Co-authored-by: Jordan Rose <jrose@signal.org>
2025-09-02 15:59:27 -07:00
andrew-signal
01d3d4ed30 Future-proof sealed sender trust root handling.
Co-authored-by: Jordan Rose <jrose@signal.org>
2025-08-27 12:03:28 -04:00
Andrew
4c75abcac3 Reset for version v0.79.1 2025-08-21 15:17:44 -04:00
Jordan Rose
c905320dea bridge: Add IllegalArgumentError
...mostly so we can stop using SignalProtocolError::InvalidArgument
for functions that wouldn't otherwise traffic in SignalProtocolErrors.
2025-08-18 10:47:34 -07:00
Jordan Rose
6cfdd92d93 java: Fix order of arguments to assertEquals in assertLookupErrorIs 2025-08-18 10:00:42 -07:00
Jordan Rose
549d91aba3 net: Fold cdsi::LookupError::Parse into CdsiProtocol
Both of these indicate the server sending something unexpected, and
all clients already treat them the same at the app level anyway.
2025-08-18 10:00:42 -07:00
Jordan Rose
ddb8f340ca Remove unused cdsi::LookupError::InvalidResponse 2025-08-18 10:00:42 -07:00
Jordan Rose
8fdb2778bc protocol: Split FingerprintError out from SignalProtocolError
The "fingerprint" / safety number operations *are* tied to the
"protocol" in that they provide a way to verify identity keys, but
they are also completely distinct from the message handling that the
rest of SignalProtocolError is used for.
2025-08-15 12:21:25 -07:00
Alex Bakon
912d75d3b5 Reset for version v0.78.4 2025-08-15 09:58:52 -04:00
Jordan Rose
9e2bcb2a74 SVRB: Distinguish "automatic retry" from "manual retry" errors
- Java: This distinction is already made, just reworded

- Node: We include "protocol errors" in IoError here, where retrying
  probably won't help, but it won't really be harmful either.

- Swift: Automatically retryable errors are now enumerated; other
  errors are still described as "manually retryable". (Also, fixed a
  redundant error message format call.)
2025-08-14 16:14:12 -07:00
Jordan Rose
54e81cda4f java: System.runFinalization() in GC cleanup testing
This makes this particular test more reliable even though no
'finalize' methods are involved in this one.
2025-08-13 13:31:23 -07:00
Jordan Rose
b4cd040474 Add SvrB.remove(), use it for app-level integration tests 2025-08-13 12:35:52 -07:00
Jordan Rose
374301ab46 java: Include a timestamp in the testing StderrLogger
Before
> I libsignal: rust/bridge/shared/types/src/net.rs:132: Initializing connection manager for Staging...

After
> [11:03:32.956965 libsignal] I rust/bridge/shared/types/src/net.rs:132: Initializing connection manager for Staging...
2025-08-13 11:43:12 -07:00
Jordan Rose
7bae76f25e java: Use the slightly-nicer StderrLogger in TestLogger 2025-08-13 11:43:12 -07:00
Jordan Rose
996f6bb250 jni: explicitly clean up local refs on background threads
- Use a local frame for bridge_io when completing futures
- Use a local frame for ChatListener callbacks
- Use AutoLocal for exception formatting callbacks
2025-08-12 10:49:30 -07:00
moiseev-signal
b53ed51263 keytrans: Stop falling back to search if _self_ monitor detects a new version 2025-08-11 15:34:01 -07:00
Alex Bakon
1f923dcd88 Remove unused TransportConnectError::DnsError 2025-08-11 09:45:02 -04:00
Jordan Rose
ea343a89ab jni: Native.java -> Native.kt
Improvements included in this first iteration:
- Nullable/non-nullable!
- ObjectHandle typealias for Long
- Fixed handling for CompletableFuture<Void> (previously translated
  without generics at all in some cases)

Co-authored-by: Alex Bakon <akonradi@signal.org>
2025-08-08 14:41:22 -07:00
Jordan Rose
1d67bed3ed Gradle: Consolidate allprojects + subprojects down to one block 2025-08-08 14:40:35 -07:00
Jordan Rose
969f9304a5 Reset for version v0.78.3 2025-08-08 14:20:19 -07:00
Jordan Rose
36916db152 Gradle: Make Spotless a top-level task, be precise about inputs
Previously, we used a per-project directory glob for Kotlin and Java
sources, which (1) was overly general, (2) ran afoul of Gradle's rules
about "if you look in a directory you must depend on it", and (3)
required us to make a fake subproject in the shared/ folder because
Spotless doesn't like sources outside the project directory.

Now, we delay complete evaluation of the root project until
subprojects are complete, and then add a single Spotless operation at
the top level that uses the subprojects' compile tasks to find exactly
the files to format.
2025-08-08 13:08:31 -07:00