Releases: signalapp/libsignal
Releases · signalapp/libsignal
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 '()'
v0.45.0
- 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.