Skip to content

Releases: signalapp/libsignal

v0.50.0

07 Jun 17:11
Compare
Choose a tag to compare
- Treat HTTP 4xx errors as fatal for SVR connections. In Java, these
  result in a new NetworkProtocolException, distinct from the
  NetworkException that represents a potentially-transient error.

- Java: Fix missing AttestationFailedException in throws clauses

- Update backup validation

- net: Back off DNS requests like we do for the main connection

- net: Chat responses that come in just before the connection is
  closed won't be dropped as aggressively.

v0.49.0

31 May 20:14
Compare
Choose a tag to compare
- Support production SVR3 enclaves (includes breaking Rust API changes)
- Updated backup proto definitions + tests
- Updated rust dependencies

v0.48.0

24 May 19:27
Compare
Choose a tag to compare
Node:
- Support cancellation of running futures.

Net:
- Improve logging for websocket connection failures.
- Consolidate timeouts.
- Add errors for app expiration and device deregistration.

Misc:
- Update message backup proto definition.

v0.47.0

21 May 23:05
Compare
Choose a tag to compare
SVR3:
- Report tries_remaining value to the clients
- Implement remove function
- Support new staging enclaves

Java:
- Fix class loading issue with GraalVM
- Make `ECPrivateKey#<init>(byte[])` public
- Check for invalid key sizes more thoroughly in ECPublicKey
  - Requires auditing existing call sites

Swift:
- Expose LibsignalLogger protocol rather than depending on DDLog
  - Clients need to register the logger explicitly
- Expose cancellation
- Expose experimental ChatListener

Net:
- Remove timeout for multi-route connection manager

v0.46.2

17 May 00:28
Compare
Choose a tag to compare
- net: Fix regression in TLS verification introduced in v0.46.1
  (every non-Signal certificate would fail *except* on Linux)

- Rust: net's DnsResolver has a useful Default implementation again

v0.46.1

16 May 17:15
Compare
Choose a tag to compare
- net: Expose authenticated sends on ChatService. (Note that there is
  yet no way to get messages *from* the server.)

- net: Setting an invalid proxy from Java/Swift/TypeScript will now
  result in all connections failing until it's cleared or replaced.

- net: Many internal improvements, including
  - DNS lookups will fall back to DNS-over-HTTPS to Cloudflare
  - Connection requests are debounced
  - TLS verification will now succeed on Linux for non-Signal servers

v0.46.0

02 May 23:07
Compare
Choose a tag to compare
- Net now requires a user agent string on initialization.

- Restores ProfileKeyCredentialPresentationV1, removed in v0.43.0.
  While this is no longer presented by clients, it can still appear
  in old gv2 change actions.

- ServiceId is now Comparable in Java and Swift, Ord in Rust.
  In JavaScript, ServiceId.comparator provides the same ordering.
  The order is consistent across all platforms.

- Swift: The message backup stream factory function can now throw.

- Rust: libsignal-protocol timestamps now use a strong type.

- The LibSignalClient podspec is now compatible with GNU ln as well as
  macOS's standard BSD ln.

v0.45.1

26 Apr 21:21
Compare
Choose a tag to compare
Network:
- Improved logging
- Replaced rustls-native-certs with rustls-platform-verifier

Swift:
- Use thin LTO even in debug builds
- C functions with no arguments are declared '(void)', not '()'

v0.45.0

19 Apr 22:56
Compare
Choose a tag to compare
- BackupAuthCredential now uses an enum for its level; credentials
  containing unknown levels will fail to deserialize. Receiving a
  BackupAuthCredentialResponse no longer requires an expected level,
  but now requires a timestamp; this timestamp should be the one
  provided by the server as the key in the JSON object containing the
  response.

- The backup validator has been updated; in particular, it now expects
  the IV to be in the file, and allows padding after the compressed
  backup frames.

- Support for issuing AuthCredentials with the PNI reinterpreted as
  an ACI has been removed.

- The connectionReused field from ChatService's DebugInfo has been
  removed.

- SVR3 now supports TPM2SNP on GCP, and no longer supports it on
  Azure.

- Node: Exposed Net.setIpv6Enabled(). IPv6 remains on by default.

- Java: libsignal's CompletableFuture now supports whenComplete.

- Java: A number of ClassNotFound issues have been quashed.

- Swift: PreKeyBundle.preKeyId no longer returns the *signed* pre-key
  ID, and the Kyber key info, if any, is available as well.

- Swift: Add missing invalidAttestationData and connectionFailed
  error cases.

- Rust: More zkcredential and zkgroup types implement Debug and
  PartialEq. More types in several crates implement Error.

- Changes for upstream boring v4.6.0 have been merged.

v0.44.0

03 Apr 01:19
Compare
Choose a tag to compare
- All platforms: TLS proxy support added
- Node: ChatService extracted in a separate class
- GroupSendEndorsement: refine issuance proof
- Internal changes to the reconnect logic in libsignal-net