Releases: signalapp/libsignal
Releases · signalapp/libsignal
v0.51.1
- 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
- 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
- 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
- Support production SVR3 enclaves (includes breaking Rust API changes) - Updated backup proto definitions + tests - Updated rust dependencies
v0.48.0
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
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
- 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
- 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
- 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
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 '()'