Commit Graph

233 Commits

Author SHA1 Message Date
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
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
Jordan Rose
41d8316e44 Reset for version v0.82.2 2025-09-30 12:18:10 -07:00
Andrew
15ac8b7c5f Reset for version v0.82.1 2025-09-25 11:51:36 -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
Alex Bakon
e208669902 Enable permessage-deflate for chat connections
Switches the tungstenite dependency from stock v0.27 to our fork. Enables the 
"deflate" feature of the same, and adds a remote config flag to enable 
negotiating permessage-deflate support when establishing a chat connection.
2025-09-17 15:20:27 -04:00
Jordan Rose
0143e2f69a Reset for version v0.81.1 2025-09-16 16:57:05 -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
03d0b2b71f Reset for version v0.80.4 2025-09-11 13:53:02 -07:00
Jordan Rose
0dc7d8765b LibSignalClient.podspec: Rust target name for arm64e 2025-09-11 10:12:09 -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
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
4c75abcac3 Reset for version v0.79.1 2025-08-21 15:17:44 -04: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
969f9304a5 Reset for version v0.78.3 2025-08-08 14:20:19 -07:00
Max Moiseev
a357e1c8f4 Reset for version v0.78.2 2025-08-06 11:28:06 -07:00
Jordan Rose
59ce2f3f0c Reset for version v0.78.1 2025-07-31 14:00:29 -07:00
gram-signal
72935510d4 Immediately after a restore, use the same enc_salt/pw_salt for the next backup.
Co-authored-by: Jordan Rose <jrose@signal.org>
2025-07-30 20:14:26 -07:00
Andrew
b76a09d9c7 Reset for version v0.77.2 2025-07-29 20:31:28 -04:00
Andrew
b7ebe6833b Reset for version v0.77.1 2025-07-28 19:10:50 -04:00
Jordan Rose
a881fcf0f3 java: Align CompletableFuture cancellation behavior with OpenJDK's 2025-07-25 13:24:29 -07:00
Alex Bakon
c913c90aca Reset for version v0.76.8 2025-07-22 16:56:33 -04:00
Max Moiseev
fa287c9fdd Reset for version v0.76.7 2025-07-21 18:04:47 -07:00
Jordan Rose
69f1a54f0c Reset for version v0.76.6 2025-07-18 09:59:41 -07:00
Andrew
c91d44a873 Reset for version v0.76.5 2025-07-14 12:42:28 -04:00
Andrew
3ae165add7 Reset for version v0.76.4 2025-07-01 13:57:06 -04:00
Andrew
a400a0078c Reset for version v0.76.3 2025-07-01 04:38:10 -04:00
Max Moiseev
f60748b4aa Reset for version v0.76.2 2025-06-26 12:20:27 -07:00
Max Moiseev
4f0d39c334 Reset for version v0.76.1 2025-06-24 13:52:50 -07:00
Jordan Rose
841f57c30f Move (RegistrationSessionState)RequestedInformation -> ChallengeOption 2025-06-23 10:37:55 -07:00
Andrew
c276f445f7 Reset for version v0.75.2 2025-06-18 12:27:34 -04:00
Alex Bakon
f59204538e Reset for version v0.75.1 2025-06-16 14:04:01 -04:00
Jordan Rose
1b469bb6c7 Make acknowledgments platform-specific 2025-06-12 16:01:33 -07:00
Alex Bakon
a32aca9bce Remove Java Curve class 2025-06-12 17:24:31 -04:00
Andrew
82861a11e7 Reset for version v0.74.2 2025-06-10 16:59:56 -04:00
Max Moiseev
0410cb017a Reset for version v0.74.1 2025-06-04 14:39:48 -07:00
gram-signal
b7b8040e3a Integrate post-quantum ratchet SPQR.
This PR integrates a post-quantum ratchet (SPQR) into libsignal, using an API that maintains its own internal chain and provides per-message keys.  In doing so, it also aims to be fully backwards-compatible with current clients and stored session state.

## Backwards compatibility with current clients

Remote clients that connect to us or that we connect to may not have this integration.  If they don't, their SignalMessage wire format should still deserialize, and in doing so we'll receive an empty pq_ratchet field.  SQPR handles this internally, by downgrading the protocol version to "version 0" or "don't do anything".  Note that should we eventually want to disallow this, we can do so via increasing the `min_version` field passed into the SQPR init functions to V1.  This is also the method by which we would upgrade SQPR from v1 to a future v2, etc.

## Opt-in

The publicly facing API calls for this now expose an explicit opt-in via a passed-in `use_pq_ratchet` bool (and associated enums in language-specific APIs).  If false, they default to SQPR `v0`, IE: none.  If true, they try to set up SPQR on new sessions, but will downgrade if the remote party cannot or will not do the same.
2025-06-04 11:18:12 -07:00
Max Moiseev
40e9e89f1e Reset for version v0.73.4 2025-06-03 16:19:26 -07:00
Jordan Rose
5444a2f949 Reset for version v0.73.3 2025-05-29 15:45:43 -07:00
Andrew
732d9397e9 Reset for version v0.73.2 2025-05-20 18:30:15 -04:00
Andrew
99c0c9d5c3 Reset for version v0.73.1 2025-05-20 16:32:17 -04:00
Jordan Rose
0e1ec3909b bridge: Require that PreKeyBundles have Kyber pre-keys
Support for starting sessions with pre-quantum X3DH has been removed
from Swift, Java, and TypeScript. PQXDH will be required going
forward.
2025-05-19 12:25:53 -07:00
Jordan Rose
925fb84552 Reset for version v0.72.2 2025-05-14 17:47:03 -07:00
Alex Bakon
d51f764387 Reset for version v0.72.1 2025-05-14 11:04:33 -04:00