Releases: signalapp/libsignal
Releases · signalapp/libsignal
v0.41.2
- Reverted a breaking change (zkgroup: Implement GroupSendEndorsements)
v0.41.1
- protocol: Flip SSv2 encryption to the "new" key derivation (no client-visible impact) - Update message backup proto definition - Fix a configuration issue for libsignal-net
v0.41.0
- SVR3 bridge, all clients - CDSI bridge for FFI - libsignal-net bridge for Node - Retire old SVR2 enclaves - Message backup: - Expose message backup purpose as an argument - Disallow messages that are expiring soon - Usernames: Fix missing Cargo feature for curve25519-dalek - Implement 3HashSDHI-based "passes" in zkcredential - Java bridging layer changes: - Mark all bridge_fns that return Result as `throws Exception` - Add the FilterExceptions helper - Node bridging layer changes: - Use JsBigInt for u64 bridging instead of a Buffer - Update to Neon 1.0 - General bridging layer changes: - Filter out log messages that aren't from libsignal - Make ProtocolAddress's getters infallible - Improve error messages
v0.40.1
- Android: run tests that rely on test-only library code - Java: internal changes to fix Java object construction on Android - Fixed message backup validation bug, added tests
v0.40.0
- Multiple improvements to libsignal-net (no client impact). - Introduce processMinidumpBuffer for Desktop. - Updated error handling in the bridging layer. - Java APIs breaking changes: - DecryptionErrorMessage deserialization can throw InvalidKeyException - HsmEnclaveClient can fail at any point during the protocol - Aes256GcmSiv.encrypt can't fail - Message backup validator is now available on all client platforms. - Fix Java error handling for CDSI lookup.
v0.39.3
- zkgroup: Add GroupSendCredentialResponse::receive_with_ciphertexts, which is exposed as an overload of receive() for Java and Swift, and as receiveWithCiphertexts() for TypeScript. This is more efficient if the client already has ciphertexts for the group members. - Java: Expose ServerCertificate and SenderCertificate creation APIs, and add them to libsignal-server as well as libsignal-client. - Update Cargo dependencies again.
v0.39.2
- Java: Mp4Sanitizer and WebpSanitizer now support InputStreams that don't provide a good skip() operation. - Java and Swift: Remove the length parameter for WebpSanitizer. (The old overload has been deprecated.) - Node: Expose SealedSenderMultiRecipientMessage parsing (for @signalapp/mock-server). - Rust: Update pinned nightly toolchain, as well as dependencies.
v0.39.1
Node: Pins the version of prebuildify used for releases, otherwise the same as v0.39.0.
v0.39.0
- Add Username.from_parts() method - Refuse to generate username hashes for nicknames over 48 chars long - Split up BadDiscriminator username error into more specific errors: - Rust: UsernameError now has more cases. ProofVerificationFailure is also split off into its own error type, separate from structural username errors. - Java: Subclasses of BadDiscriminatorException have been added. - Swift: Some error codes have been renamed and others have been added. - TypeScript: Some error codes have been renamed and others have been added. Discriminator errors are now proper LibSignalErrors. - Java: Expose non-copying method on SealedSenderMultiRecipientMessage to get message size for a recipient
v0.38.0
- Update to pqcrypto-kyber 0.7.9 - Rust: Allow mixed comparisons (PartialEq) between ServiceId and Aci/Pni. This is convenient but is also a breaking change: call sites that compared `service_id == aci.into()` will now be ambiguous; the fix is to remove the `.into()`. - Rust: Expose ServiceId::kind as pub - Restore compatibility with Rust 1.72 (and possibly earlier if you only use certain crates), and clarifies that updating this minimum version counts as a "breaking change" (i.e. v0.39.0 rather than v0.38.x). - Belatedly note that git is a compilation dependency (via boring-sys) - Start of libsignal-message-backup crate, which validates the backup files generated by the apps. Not ready for general use. - Continued work on SVR3