Releases: beeper/libsignal
Releases · beeper/libsignal
beeper-0.86.4
v0.86.4
- backups: Support latest backup.proto definitions
v0.86.3
- backups: Allow "tombstones" from view once messages in takeout exports
- backups: Refactor
BackupJsonExporterfor easier consumer usage
beeper-0.86.2
v0.86.2
- backups: Include more account fields into the exported JSON
- backups: Throw validator errors if multiple contacts have the same username (a case-insensitive check)
v0.86.1
- Revert back to publishing to Maven Central.
v0.86.0
- Java artifacts are now published to GitHub Package Registry rather than Maven Central. See the instructions for Gradle and Maven. (No authentication should be necessary.)
- java: Remove protocol.util.Pair in favor of kotlin.Pair
- Node: export libsignal-net remote config keys as an array.
- The deprecated overloads of
KyberPreKeyStore.markKyberPreKeyUsedhave been removed in Java and Swift. (TypeScript does not have overloads.) They were originally marked deprecated in v0.81.0. - Android: The min SDK version is now 23.
- Bump minimum macOS version to 12
v0.85.6
- Node: Update package.json with repository link
v0.85.4
- backups: Add 'pinReminders' setting field to AccountSettings
v0.85.3
- backups: Add bioText & bioEmoji fields to AccountData
beeper-0.85.2
v0.85.2
- Rust: All serializable zkgroup types are now marked as Clone, since you could get the same effect from serializing and deserializing.
- Node: Remove a stray import from
chaiin a non-testing file.
v0.85.1
- Backups / SVRB - add support for multiple SVRB backends when new enclaves need to roll out.
- Typed APIs:
UnauthUsernamesService.lookUpUsernameLinkhas been added. - Backup validator: count grapheme clusters instead of characters in poll strings.
v0.85.0
- Incremental MAC validation now checks up front that the digest list is at least structurally valid (a concatenation of digests of the correct length). This was already being checked implicitly, but produced an obtuse error.
- Java: IncrementalMacInputStream's constructor can now throw InvalidMacException (instead of an AssertionError)
- Swift: ValidatingMacContext's initializer will now throw .verificationFailed (instead of .internalError)
- Node: ValidatingWritable's constructor will now throw IncrementalMacVerificationFailed (instead of a plain Error)
- Rust: Incremental::validating now specifically takes an iterator over borrowed arrays (or GenericArrays)
- Backups:
- The consolidated away wifiAutoDownloadSettings is now treated as unknown.
- Support poll reactions.
- Typed APIs:
UnauthMessagesService.sendMultiRecipientMessagehas been added to libsignal's app layer.
beeper-0.84.0
v0.84.0
- keytrans: Verify signatures from all auditors
- Java: Fixed
IdentityKeyPair(byte[])to correctly declare that it throws InvalidKeyException. - Node: Add BackupsJsonExporter, to convert Backup proto objects to human-readable JSON for export.
beeper-0.83.0
v0.83.0
- backups: Support polls in backup validator
- spqr: Remove client-provided options to turn on/off SPQR, defaulting to on everywhere.
v0.82.1
- keytrans: Unify errors with other typed APIs
- Locally-closed WebSocket connections now explicitly send close code 1000 instead of an empty close frame
- node: Buffer is explicitly imported from node:buffer
beeper-0.82.0
beeper
- Enabled LTO for iOS and Android builds
v0.82.0
- Node: migrate libsignal-client to the ECMAScript module format (from CommonJS).
- Node: interfaces now use property notation for method requirements, which TypeScript can check more strictly.
- net: Direct connections to the Signal servers will be tried as a fallback if connecting through an HTTP or SOCKS proxy fails or takes too long.
v0.81.1
- Enable negotiating permessage-deflate support for chat websocket connections, if configured.
- Net: remove Noise connection shadowing for staging Chat websocket connections.
v0.81.0
- KyberPreKeyStore.markKyberPreKeyAsUsed now takes three arguments, to allow tracking how the pre-key is used: the Kyber pre-key ID, the signed EC pre-key ID, and the session base key.
- We now always defer to an HTTP/HTTPS proxy for DNS resolution.
beeper-0.80.3
v0.80.3
- Internal changes and logging updates only
v0.80.2
- backups: Add logging to BackupAuthCredentialRequestContext_ReceiveResponse internals
v0.80.1
- Sealed sender SenderCertificates can now use a
bytesrepresentation for the sender, and may avoid embedding their signing ServerCertificate in favor of referencing a "known" certificate baked into libsignal. See sealed_sender.proto and theKNOWN_SERVER_CERTIFICATESlist in the source for more details.
v0.80.0
- backups: relax restriction that backups with backup_tier == free cannot have backupsSubscriberData
- Migrate crates to Rust 2024 edition.
- Desktop: add a distinct error type for incremental mac verification failures.
v0.79.1
- The first "Typed API" service interface for chat-server, UnauthUsernamesService, has been added to libsignal's app layer.
- The libsignal-net remote config option
chatRequestConnectionCheckTimeoutMilliscontrols a new check: if a chat request hasn't been responded to in this amount of time, libsignal will check if the connection is using the preferred network interface, and close it early if not. - Java:
CertificateValidator.validate(SenderCertificate, long)is once againopenfor testing. - backups: Validate quote body length
- MSRV has been increased to 1.85
beeper-0.79.0
v0.79.0
- Rust: libsignal-protocol's fingerprint-related operations have a dedicated error type now, FingerprintError, rather than reusing SignalProtocolError.
- backups: validate presence of
OutgoingMessageDetails.dateReceived, remove deprecated BackupLocator/AttachmentLocator/LocalLocator
v0.78.3
- keytrans: Distinguish self-monitoring from monitoring for others
- Net: Shadow Chat websocket connections in staging with Noise Direct connections when enabled via remote config.
beeper-0.78.2
v0.78.2
- Finalize errors produced by SVR-B operations.
v0.78.1
- backups: Add support for call link epochs.
- Rust: libsignal_net_infra::ws2 has been merged into libsignal_net_infra::ws, with Connection and Config included directly and helper types available under ws::connection. The old ws::WebSocketConfig has been removed.
- Android: run TLS verification on a dedicated thread.
beeper-0.78.0
v0.78.0
SVR-B
- Operations have been consistently renamed to
storeandrestore. restorenow returns an object containing both the BackupForwardSecrecyToken for decryption, and "secret data" to be used in the firststoreafter restoration.SvrBnow has acreateNewBackupChainmethod, allowing you to locally persist the backup "secret data" before the first store to SVR-B for a fresh install.- With the first two changes, the secret data argument to
restoreis now required. See doc comments for more details.
Other changes
- Rust:
SessionRecord::has_usable_sender_chainnow takes an additional parameter to specify which criteria make a session "usable" beyond simply having a sender chain. The previous behavior can be requested by usingSessionUsabilityRequirements::NotStale.
v0.77.1
- Add more logging for network connectivity issues
v0.77.0
- Java: Align cancellation behavior of our CompletableFuture with the one from OpenJDK:
- The parameter to
cancel()is ignored. completeExceptionally(someCancellationException)is treated as a cancellation.get()can now directly throw CancellationExceptions (as documented) instead of wrapping them in ExecutionException.- Cancellations of libsignal operations continue to propagate bidirectionally when using CompletableFuture's transformation methods, unlike the version in OpenJDK.
As a bonus, CompletableFuture now supports thehandle()transformation.
- The parameter to
- Exposed the new SVR-B API to TypeScript, Swift, and Kotlin.
- BackupForwardSecrecyTokens can now be used to derive MessageBackupKeys.
- Downgraded some networking-related error logs to warnings.