Commit Graph

152 Commits

Author SHA1 Message Date
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
Jordan Rose
1458b6ffa2 swift: Remove sealedSenderEncrypt/Decrypt convenience functions
...in favor of the more general functions using
UnidentifiedSenderMessageContent, which the iOS app is already using.
(sealedSenderDecrypt in particular was never updated to support
PQXDH.)
2025-05-06 07:56:23 -07:00
Jordan Rose
67acb36a55 Bump iOS min deployment target to 15
(This is what the iOS app has been at for quite a while by now.)
2025-05-05 13:49:29 -07:00
Max Moiseev
ec7c5af356 Reset for version v0.71.1 2025-05-01 14:17:36 -07:00
Alex Bakon
8f1baf561c Use an enum value for IdentityKeyStore.saveIdentity in libraries 2025-04-25 12:52:58 -04:00
Max Moiseev
31f51e5dd0 Reset for version v0.70.2 2025-04-24 14:40:14 -07:00
Max Moiseev
4d8d96480a Reset for version v0.70.1 2025-04-11 15:46:39 -07:00
Alex Bakon
cca4cf6970 Add "register" and "reregister" top-level functions in Rust 2025-04-09 15:08:23 -04:00
Jordan Rose
c062a7e03a Reset for version v0.69.2 2025-04-08 14:33:09 -07:00
Andrew
44e396c730 Reset for version v0.69.1 2025-04-02 16:00:27 -04:00
Alex Bakon
d13bc958e2 Remove fallback CDSI connect code 2025-04-02 13:39:38 -04:00
Alex Bakon
f7d01c201d Reset for version v0.68.2 2025-04-01 17:10:04 -04:00
Andrew
7b2e92b6db Reset for version v0.68.1 2025-03-27 21:12:07 -04:00
andrew-signal
1f7a4b90cc Update versions throughout to v0.68.0 2025-03-25 18:24:33 -04:00
Jordan Rose
a53a5fd1e5 Reset for version v0.67.7 2025-03-20 16:15:24 -07:00
Jordan Rose
3a86e65849 Reset for version v0.67.6 2025-03-12 15:35:57 -07:00
Jordan Rose
c74d608625 Reset for version v0.67.5 2025-03-11 16:09:42 -07:00
Jordan Rose
5b4bb54748 Reset for version v0.67.4 2025-03-04 17:20:57 -08:00
Jordan Rose
5b90cf23e6 Reset for version v0.67.3 2025-03-04 16:06:39 -08:00
Alex Bakon
fd5728c88f Reset for version v0.67.2 2025-02-26 13:55:20 -05:00
Jordan Rose
37efd6f235 Reset for version v0.67.1 2025-02-21 16:42:54 -08:00
Alex Bakon
2ba84ac051 Bridge chat response sending as synchronous 2025-02-21 15:29:20 -05:00
Jordan Rose
4215bdb1b6 Reset for version v0.66.3 2025-02-13 15:03:40 -08:00
Andrew
719772a0fe Reset for version v0.66.2 2025-02-11 16:13:22 -05:00
Andrew
c1ba7d54f1 Reset for version v0.66.1 2025-02-11 15:05:28 -05:00
Andrew
a071849ae5 Reset for version v0.65.7 2025-02-04 17:05:54 -05:00
Andrew
5522925a07 Reset for version v0.65.6 2025-02-03 17:51:54 -05:00
Jordan Rose
3bd5a0a73b Reset for version v0.65.5 2025-01-27 13:00:01 -08:00
andrew-signal
37da5d806e Update release notes to running methodology 2025-01-21 15:05:06 -10:00
Andrew
10dcf92058 Bump to version v0.65.3 2025-01-21 10:16:23 -10:00
Jordan Rose
864a1a1a87 Bump to version v0.65.2 2025-01-15 15:44:44 -08:00
Alex Bakon
908fa98ee4 Bump to version v0.65.1 2025-01-15 11:51:42 -05:00