Commit Graph

298 Commits

Author SHA1 Message Date
Jordan Rose
8894050176 chat: Fix parsing of 409/410 responses to sendMultiRecipientMessage 2025-11-14 17:04:03 -08:00
andrew-signal
de881ddde4 backups: Exporter now returns [Result<String, Error>] instead of a serialized JSON array object
Co-authored-by: Jordan Rose <jrose@signal.org>
2025-11-11 16:52:47 -05:00
Alex Bakon
1b2304022a Expose net remote config keys in TypeScript
Co-authored-by: Max Moiseev <moiseev@signal.org>
2025-11-06 15:17:32 -08:00
Jordan Rose
57f2254605 node: Use Node's assert rather than Chai's in FakeChat.ts
While this is only used for testing, it's still *present* in the built
app, and as such shouldn't be referring to devDependencies. Use the
ESLint rule 'import/no-extraneous-dependencies' to make sure this
doesn't slip in again.
2025-10-29 15:56:16 -07:00
moiseev-signal
78b0abf1e1 node: Implement a more friendly FakeChatRemote abstraction for tests 2025-10-20 14:23:09 -07:00
Jordan Rose
ad9fa70f7c node: Expose UnauthUsernamesService.lookUpUsernameLink 2025-10-17 12:14:40 -07:00
Jordan Rose
baec47e62e bridge: Add UnauthenticatedChatConnection_look_up_username_link 2025-10-17 12:14:40 -07:00
Jordan Rose
85686caa01 node: Combine Native.js and .d.ts into Native.ts
This allows the file to be checked by tsc, which would have caught
some of the missing type aliases sooner (now added to Native.ts.in).
Strictly speaking the behavior is slightly different: we have returned
to exporting many items individually instead of collecting them on a
single object.

Co-authored-by: Alex Bakon <akonradi@signal.org>
2025-10-15 17:50:37 -07:00
Jordan Rose
2b6c801fb6 bridge: Expose sendMultiRecipientMessage in UnauthMessagesService 2025-10-14 18:17:25 -07:00
Jordan Rose
279390b4f2 Incremental MAC: Check digest length when initializing ValidatingMac 2025-10-14 16:30:10 -07:00
Jordan Rose
388e294acf bridge: Eliminate FakeChatSentRequest in favor of pairs 2025-10-10 16:56:15 -07: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
andrew-signal
b6db49f457 TypeScript: Provide BackupsJsonExporter for takeout flow 2025-10-09 20:27:00 -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
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
8b10397484 node: Explicitly import Buffer from node:buffer 2025-09-29 18:23:38 -07:00
moiseev-signal
0e9c85c354 keytrans: Unify errors with other typed APIs 2025-09-26 11:47:40 -07:00
Jordan Rose
42ff946228 node: Enforce @typescript-eslint/method-signature-style 2025-09-24 16:30:43 -07:00
Alex Bakon
e64bf1a319 Migrate eslint from deprecated v8 to supported v9 2025-09-22 15:38:53 -04:00
Alex Bakon
1f01c19e5f Convert libsignal-client node package to ESM 2025-09-22 14:20:16 -04:00
Alex Bakon
b944c1bda3 Node: Net.setRemoteConfig takes ReadonlyMap 2025-09-18 17:27:30 -04:00
Jordan Rose
15af92c93d protocol: Record signed prekey and base key used with a Kyber prekey 2025-09-16 15:33:59 -07:00
moiseev-signal
1db21ca351 keytrans: Update the test account data 2025-09-16 11:07:10 -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
moiseev-signal
4675bb82a2 Desktop: add distinct type for incremental mac verification error 2025-09-03 16:40:58 -07: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
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
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
b4cd040474 Add SvrB.remove(), use it for app-level integration tests 2025-08-13 12:35:52 -07:00
Jordan Rose
7cd112864c node: Add timestamps to the test logger 2025-08-13 11:43:12 -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
fd8322b53e SVRB: Clarify what "chain" refers to in the doc comments 2025-08-07 17:28:02 -07:00
Jordan Rose
cb5965ee9c node: Add missing SVR-B error, document recovery procedures 2025-08-06 17:46:57 -07:00
Jordan Rose
64b60dca7b SVRB: only return the most important error from restore_backup
...but make sure we still log all of them.
2025-08-06 16:45:06 -07:00
Jordan Rose
9feb3de9d2 net: SvrError::ConnectionTimeout -> AllConnectionAttemptsFailed
The same error is being used both for timeouts and for "all attempts
failed"; if we're going to coalesce them (reasonable, given that the
only option in either case is "retry" or "don't"), "all attempts
failed" is a less misleading choice.

This changes the particular enum case in Swift from connectionTimedOut
to connectionFailed. Java continues to use NetworkException and
TypeScript the IoError code.
2025-08-01 14:02:54 -07:00
Jordan Rose
be9e9a3ab6 Expose SvrB.createNewBackupChain(), make secret data non-optional 2025-07-31 12:37:02 -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
Alex Bakon
bb05cc016e Streamline bridging of SVR-B function arguments 2025-07-29 14:18:16 -04:00
Jordan Rose
9e9c375db9 Expose BackupForwardSecrecyToken-aware MessageBackupKey derivation 2025-07-28 13:53:19 -07:00
Alex Bakon
348ea4ac03 Bridge SVR-B to TypeScript
Co-authored-by: Andrew <andrew@signal.org>
2025-07-28 16:02:02 -04:00
gram-signal
cf2573c0bd Add prod SVRB configs into net. 2025-07-24 13:24:41 -07:00
andrew-signal
47a4eeabb5 Bridge BackupForwardSecrecyToken to Swift/Kotlin/TypeScript 2025-07-23 19:57:16 -04:00
andrew-signal
ec3c273219 Expose Rust API for SVR-B 2025-07-23 18:59:54 -04:00
Jordan Rose
0dc81d3131 backup: Replace bespoke TooShort with io::ErrorKind::UnexpectedEof 2025-07-17 10:57:29 -07:00
Jordan Rose
a410849578 crypto: Add a stripped-down HPKE API for our Curve25519 keys 2025-07-15 16:17:23 -07:00