Commit Graph

163 Commits

Author SHA1 Message Date
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
Jordan Rose
59cb7df6a3 bridge: Split Chat into AuthChat and UnauthChat
This matches the split that has already happened in the TypeScript and
Swift APIs. For now, both AuthChat and UnauthChat are wrappers around
the same type, a fully general chat::Chat, but we expect to eventually
split that into authenticated and unauthenticated variants as well. At
that point we can consider whether the common implementation here is
still pulling its weight.
2024-09-24 16:05:20 -07:00
moiseev-signal
88c2ab1dcc svr3: Bridge rotate API to mobile platforms 2024-09-13 09:59:56 -07:00
Jordan Rose
a8814d16f8 Move all "testing-fns" APIs into libsignal-bridge-testing
This means they'll be shipped to clients, but still filtered out of
the device builds on Android (via having two separate libraries on
disk) and iOS (by not being included in non-simulator builds). The
biggest benefit of this is dropping the :android:makeTestJniLibraries
step for running libsignal's Android tests.
2024-08-27 08:29:06 -07:00
Jordan Rose
5e81e01a38 java: {Signed,Kyber}PreKeyRecord.getKeyPair throws InvalidKeyException
Since the usual constructor is strongly typed, this can only happen
when the serialized data is corrupted. But that is a possibility.
2024-08-20 14:54:46 -07:00
Sergey Skrobotov
4b283b7b4f net: dropping reconnect count field 2024-08-07 19:11:43 -07:00
Jordan Rose
a561392cff Expose the "network changed" event to apps 2024-07-30 15:27:42 -07:00
Sergey Skrobotov
d694cff1a1 net: adding a parameter to opt in/out of receiving stories 2024-07-25 14:55:23 -07:00
Jordan Rose
e50ddd215b java: ChatServiceExtension now extends IOException
...for consistency with other network-related exceptions in the Java
ecosystem.
2024-07-18 13:08:59 -07:00
Alex Konradi
0b7d2856fe Use ResourceReader in test 2024-07-18 14:48:18 -04:00
Alex Konradi
f7e0af4c30 java: read expected backup file as UTF-8 2024-07-17 15:42:19 -04:00
Alex Konradi
a6a8eae650 Fix expected canonical test case output 2024-07-16 15:40:43 -04:00
Alex Konradi
66cd3f0133 backup: bridge canonical serialization as ComparableBackup 2024-07-16 14:20:31 -04:00
moiseev-signal
f794998389 SVR3: implement migrate API 2024-07-10 11:40:56 -07:00
Alex Konradi
c6857dd58e Don't assume EOF on 0-length read for Node
Remove the special handling code that detects EOF now that the upstream crate 
has fixed the bug that was being worked around. This also fixes a bug where EOF 
was being incorrectly detected when the provided buffer was empty. Add a test 
case to prevent regression in the future.
2024-07-09 11:58:43 -04:00
moiseev-signal
38a5f01f6f net: Short circuit MultiRouteConnectionManager on fatal errors 2024-06-06 18:06:59 -07:00
Jordan Rose
44b6057bce java (mostly): audit for checked AttestationFailedException
The "mostly" is because there was one place in the Rust layer where
establishing attestation could *additionally* generate a Noise error
(theoretically, not in practice), which gets turned into an
SgxCommunicationFailureException (suboptimally named now that we have
non-SGX enclaves, but oh well). Change that to treat that as an
AttestationData error as well, since it *is* about the data that comes
from the attestation blob rather than the actual Noise handshake.
2024-06-05 15:59:21 -07:00
Jordan Rose
8313a2cfbd Remove app-layer tests that rely on connection timeouts
This was previously done for Node in 62f347e866, while the Java and
Swift tests *did* pass but...very...slowly. Make them all consistent.
2024-05-30 13:28:07 -07:00
Alex Konradi
31d6015522 backups: add shared message backup test cases 2024-05-24 15:59:44 -04:00
Jordan Rose
9a8429da46 net: Add AppExpired and DeviceDeregistered errors for ChatService
And check bridging for every high-level ChatServiceError like we do
with CdsiLookupErrors.
2024-05-23 10:27:28 -07:00
moiseev-signal
70ba17491c SVR3: Implement remove API 2024-05-21 10:33:33 -07:00
moiseev-signal
c55aa17a9f SVR3: Propagate tries_remaining on restore failure 2024-05-20 15:49:59 -07:00
Jordan Rose
b9e021659b java: Check for invalid key sizes more thoroughly in ECPublicKey 2024-05-20 10:41:55 -07:00
moiseev-signal
bc5875b225 SVR3: Propagate tries_remaining upon successful restore 2024-05-20 08:54:46 -07:00
Jordan Rose
99e337f552 bridge: Expose authenticated sends on ChatService 2024-05-15 15:48:47 -07:00
Jordan Rose
a09eb567f0 net: "Poison" the TCP connector if an invalid proxy is set
This ensures that if there's an error setting a proxy, the previous
settings won't continue to be used for new connections.

This only applies to the Java, Swift, and TypeScript layers; the Rust
layer's set_proxy isn't a fallible API in the first place today. The
Java API now explicitly throws a checked IOException instead of
IllegalArgumentException.
2024-05-08 16:18:03 -07:00
Sergey Skrobotov
ab733bf00a libsignal-net: support for User-Agent header 2024-05-01 20:02:08 -07:00
Alex Konradi
32dc8c27d8 Revert "Remove ProfileKeyCredentialPresentationV1" 2024-05-01 17:12:48 -04:00