Commit Graph

203 Commits

Author SHA1 Message Date
moiseev-signal
7b293c19e0 ketrans: Update test account data 2025-03-11 14:31:18 -07:00
Alex Bakon
24d2870b60 Use separate error types for chat connect vs. send (#1431) 2025-03-10 15:42:42 -04:00
Jordan Rose
835611fc7b Expose preconnectChat() to Swift and Java
Also added a JUnit Rule for initializing the libsignal logger to
print to stderr.
2025-03-07 10:35:07 -08:00
Jordan Rose
340324f5e4 Add X-Signal-Alert callbacks for Android and iOS 2025-03-05 15:02:20 -08:00
Jordan Rose
2ebd7cd2b3 Check for X-Signal-Alert header, and report it in a callback
This on-connect header will be used for lightweight "alerts" from the
server to an authenticated client. For now, it's only threaded through
to the Node implementation; the iOS and Android ones will come later.
2025-03-04 15:07:23 -08:00
Alex Bakon
ffdb35f59f Improve error handling for ChatConnection 2025-02-21 16:06:37 -05:00
Alex Bakon
2ba84ac051 Bridge chat response sending as synchronous 2025-02-21 15:29:20 -05:00
Alex Bakon
efd6ef2424 Expose both CDSI connect methods 2025-02-19 14:19:56 -05:00
moiseev-signal
3a8bb9581f keytrans: Replace monitor with monitor_and_search in Android bridge 2025-02-12 13:05:35 -08:00
Alex Bakon
b34d84575f Remove chat service from bridge 2025-02-07 15:30:38 -05:00
Alex Bakon
23005551f2 Test chat connection send path
Add a test for the request send path and response receive path using the fake 
chat connection. This would have caught the bug fixed by bf680b09.
2025-02-05 15:15:34 -05:00
Milan Stevanovic
7785b8c3f6 Milan/mp4san update to v0 5 3 (#1343)
Propagating the mp4san new feature through all the layers of libsignal.

The feature allows seamless handling of transcoded MP4 files on Android, where multiple MDAT boxes (one per chunk of A/V streams) are first compounded and then passed to mp4san for format correction.
2025-02-04 11:17:35 -08:00
Jordan Rose
bd9a11f943 bridge: Separate proxy validation from proxy setting
And expose an explicit setInvalidProxy, both for testing and in case
apps want to do their own connection-poisoning.

This makes it easier to be consistent about "if you try to set a proxy
that turns out not to be valid, the ConnectionManager should end up in
the invalid state until explicitly cleared", whether the validation is
done on the Rust side of the bridge or the app language side.
2025-02-03 14:09:56 -08:00
andrew-signal
bf680b095a Remove ChatConnection.Response, use ChatService.Response instead 2025-02-03 15:05:29 -05:00
Jordan Rose
9f496569ff Node: use JavaScript's URL class to provide Net.setProxyFromUrl
Also improves tests around proxies for all three languages.
2025-01-31 13:24:24 -08:00
Alex Bakon
c42963cfdf Write listener bridging tests for chat connection 2025-01-31 14:03:52 -05:00
Alex Bakon
4277227203 Enable producing an array as output from Sho[Api] 2025-01-28 10:15:34 -05:00
Jordan Rose
c1ad890487 Expose a more complete Net.setProxy(...) to apps
This takes a full set of components describing the connection to a
proxy: a scheme, a host, and optionally a port and auth information.
The previous `setProxy(String, u16)` signature is still available for
Signal TLS proxies in particular, but now we have the flexibility to
support other kinds of proxies as well.
2025-01-27 17:53:09 -08:00
Jordan Rose
527222cf1f Revert "Implement and expose Net.setProxyFromUrl()"
This adds more code size than expected.
2025-01-22 11:49:14 -08:00
Jordan Rose
7e1be4700d Implement and expose Net.setProxyFromUrl()
This takes a full URL (as a string) to use as a proxy. The previous
`setProxy(String, int)` signature is still available for Signal TLS
proxies in particular, but now we have the flexibility to support
other kinds of proxies as well.
2025-01-22 11:42:00 -08:00
Alex Bakon
6eab52c405 Support KeyTransparencyClient with chat connection 2025-01-22 11:09:08 -05:00
Alex Bakon
0b5650f0c2 Pass null to Java chat interrupted cbs if intentional 2025-01-17 15:20:34 -05:00
Alex Bakon
f5d34398fb Bridge ChatConnection to Java 2025-01-17 11:44:07 -05:00
Alex Konradi
a060aa6f74 Add fn to check that an AccountEntropyPool string is valid 2024-12-19 15:39:15 -05:00
moiseev-signal
cf98c1a054 Remove SVR3 bridge from all platforms 2024-12-12 17:11:26 -08:00
moiseev-signal
0321d6d920 keytrans: Bridge monitor API to JNI 2024-12-06 16:00:55 -08:00
Alex Konradi
975f9b31c7 Pass tokio runtime handle to ws2::Chat::new 2024-12-06 06:04:07 -05:00
moiseev-signal
fc5b786fb7 keytrans: Remove ChatSearchContext type 2024-12-05 15:51:00 -08:00
moiseev-signal
107479ec4f keytrans: Rework the Store abstraction 2024-12-03 17:10:35 -08:00
Jordan Rose
e03e665c57 Introduce OnlineBackupValidator
Validates a backup frame-by-frame, bypassing the encryption,
compression, and integrity-checking layers. Intended for use during an
export the user is waiting for, such as linking a new device.
2024-11-20 12:04:33 -08:00
Alex Konradi
b0117ea6ad Deprecate PniAsServiceId credential issuer methods 2024-11-19 07:35:23 -05:00
Alex Konradi
0dd5a0242f Remove CDSI return_acis_without_uaks 2024-11-18 09:50:47 -05:00
moiseev-signal
b53778e5aa keytrans: Support /search and /distinguished APIs through Chat Server 2024-11-13 11:24:47 -08:00
Alex Konradi
9b70d85ff0 Remove MakeChatListener trait 2024-11-12 16:52:01 -05:00
andrew-signal
716e3d0124 Bridge ChatListener to Android
Co-authored-by: Jordan Rose <jrose@signal.org>
2024-11-12 15:16:52 -05:00
Jordan Rose
447f3655b5 java: Add a tool to run the backup validator through the bridge
./gradlew backup-tool:run --args "--hmac-key abcd --aes-key cdef
      path/to/backup"
2024-11-07 10:13:35 -08:00
Jordan Rose
7b75edeecd Add an API to ConnectionManager to enable/disable "connection fallbacks"
This will be off by default, unlike in previous releases of libsignal.
2024-11-05 13:45:52 -08:00
andrew-signal
42fe2b07a9 Nit: correct error in (Un)authenticatedChatService javadoc 2024-11-04 14:41:19 -05:00
andrew-signal
9c18d4ebed Split Java ChatService into Authenticated and UnauthenticatedChatService; use UnauthenticatedChatService 2024-11-04 08:07:27 -05:00
Alex Konradi
e882c68b00 Expose rate-limited error from Chat 2024-10-31 17:22:25 -04:00
Jordan Rose
b777cbcc90 Improve context for BackupKey key derivations 2024-10-31 09:28:59 -07:00
Jordan Rose
005412660c Add BackupKey.deriveThumbnailTransitEncryptionKey
One last key derivation that was previously omitted.
2024-10-31 09:28:59 -07:00
Jordan Rose
22252be035 Expose additional key derivations to apps via new BackupKey class 2024-10-29 09:47:50 -07:00
Jordan Rose
39e8616479 backup: Expose MessageBackupKey's HMAC and AES keys
This lets clients use MessageBackupKey for their own key derivation.
2024-10-28 09:53:23 -07:00
Jordan Rose
595b5d78f3 account-keys: Adjust backup ID derivation
The new derivation can be used for both messages and media backup IDs.
2024-10-28 09:53:07 -07:00
Jordan Rose
497d88b0b6 java: Add a shim to handle Base64 on both Android and Oracle Java 2024-10-24 16:59:42 -07:00
Jordan Rose
a328e3278c backup: Expose new ways of constructing MessageBackupKey
And switch the encrypted backup tests over to AccountEntropyPool.
2024-10-23 10:34:09 -07:00
Alex Konradi
01102bbab1 Provide additional information on CDSI errors 2024-10-22 13:57:50 -04:00
gram-signal
0ed3d49d20 Switch SVR3 testing environment. 2024-10-18 09:41:29 -07:00
andrew-signal
9fa6cf51f9 First iteration of JNI API for AccountEntropyPool 2024-10-03 14:59:27 -04:00