Skip to content

Releases: signalapp/libsignal

v0.52.2

11 Jul 20:12
Compare
Choose a tag to compare
- Infrastructure for client testing APIs has been added (that is,
  APIs that exist for clients of libsignal to write tests).

  - Java/Android: There is a new libsignal_jni_testing.so library
    in both the JAR and AAR products. This can safely be filtered
    out of the final built app when code size is a concern.

  - Swift: The testing APIs are only available on simulator builds.

  - Node: The testing APIs are included in the regular build.

- SVR3: Restores can now fall back to previous environments.

- SVR3: Provide a migration API, for backing up to the latest
  environment and clearing from previous ones.

- ChatService: 4xx messages from proxies will no longer be considered
  authoritative.

- ChatService: Fixed a hang when the same instance was used for both
  auth and unauth connections.

- Node: libsignal will drop log events if they are not being drained
  from the Node event loop fast enough, rather than continue to
  saturate the event loop.

- Node: The "install" action no longer tries to build the Rust library
  even if there are no available prebuilds. This should only have an
  effect if you were doing local development of libsignal.

- Node: Debug info for the Rust library is saved as part of the build.

- Further updates to the backup validator

v0.52.0

28 Jun 19:27
Compare
Choose a tag to compare
- Protocol: add SealedSenderMultiRecipientMessage#serialized
- Net: customize response status code sent to server
- Backups: bugfix to prevent short file reads
- Misc: update nightly Rust compiler version
- Misc: update Node version to 20.11.1
- Misc: remove SignalCoreKit dependency for Swift

v0.51.1

21 Jun 00:20
Compare
Choose a tag to compare
- AppExpiry and DeviceDeregistered errors are now properly reported on
  connect; previously the types were exposed but would never be
  created in practice. If this sounds like a duplicate release note,
  well, the v0.51.0 implementation wasn't quite right!

- Node: The node module file is now named
  @signalapp+libsignal-client.node instead of node.napi.node.
  The directory structure for prebuilds remains the same.

- Updated rustc, cargo-about, curve25519-dalek

v0.51.0

14 Jun 00:08
Compare
Choose a tag to compare
- Java: Logging is no longer automatically initialized; clients must
  call SignalProtocolLoggerProvider.initializeLogging() in addition to
  setting a provider.

- Node: Expose ChatListener.

- Swift: ChatListener gained a chatServiceConnectionWasInterrupted
  callback.

- Rust: libsignal-net's ServerRequest enum has been renamed to
  ServerEvent and now includes a "Stopped" event.

- AppExpiry and DeviceDeregistered errors are now properly reported on
  connect; previously the types were exposed but would never be
  created in practice.

- The jars created for libsignal-client and libsignal-server no longer
  preserve timestamps, to make builds byte-for-byte reproducible
  rather than just equivalent.

- Further updates to the backup validator.

- attest: remove obsolete CDSI mrenclave

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