Skip to content

Releases: beeper/libsignal

beeper-0.86.12

15 Jan 19:02

Choose a tag to compare

v0.86.12

  • Adds the "useH2ForUnauthChat" remote config, for experimenting with running unauthenticated chat connections over H2.
  • Update to latest libcrux-ml-kem and spqr crates, addressing signalapp#641. Thank you to @GuuJiang for investigating and helping fix this issue!

beeper-0.86.11

15 Jan 17:53
0d16964

Choose a tag to compare

v0.86.11

  • net: Address issue with TLS proxy connectivity when using certain kinds of TLS certificates

v0.86.10

  • Backup validator: Blocks and unblocks in the Release Notes chat are no longer considered errors.
  • Backup validator: Errors about absent oneofs now mention whether the message also contained fields that libsignal doesn't know about.

v0.86.9

  • When chat connections fail and the server's TLS response suggests a captive network or similar, there's now a dedicated error:
    • Java: PossibleCaptiveNetworkException
    • Swift: SignalError.PossibleCaptiveNetwork
    • Node: PossibleCaptiveNetworkError
  • Added Net(work).connectProvisioning and ProvisioningConnectionListener. Provisioning connections are used when linking secondary devices.
  • backups: Allow polls in 1:1 chats and increase question size limit

beeper-0.86.8

11 Dec 12:25

Choose a tag to compare

v0.86.8

  • backups: Support pinned messages

v0.86.7

  • backups: Add 'allow sealed sender from anyone' setting to AccountSettings
  • Usage of Nagle's Algoirthm is now configurable for Network with the 'disableNagleAlgorithm` Remote Config paramater.

v0.86.6

  • Java artifacts are now published to build-artifacts.signal.org rather than Maven Central. See the README for further instructions.
  • keytrans: Fall back to search-with-version if self-monitor returns unexpected versions.

v0.86.5

  • chat: Fixed parsing of 409/410 responses for sendMultiRecipientMessage.

beeper-0.86.4

15 Nov 17:01

Choose a tag to compare

v0.86.4

  • backups: Support latest backup.proto definitions

v0.86.3

  • backups: Allow "tombstones" from view once messages in takeout exports
  • backups: Refactor BackupJsonExporter for easier consumer usage

beeper-0.86.2

10 Nov 23:49

Choose a tag to compare

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.markKyberPreKeyUsed have 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

30 Oct 20:14

Choose a tag to compare

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 chai in 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.lookUpUsernameLink has 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.sendMultiRecipientMessage has been added to libsignal's app layer.

beeper-0.84.0

10 Oct 15:31

Choose a tag to compare

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

04 Oct 21:50

Choose a tag to compare

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

30 Sep 12:18

Choose a tag to compare

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

12 Sep 08:52

Choose a tag to compare

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 bytes representation 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 the KNOWN_SERVER_CERTIFICATES list 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 chatRequestConnectionCheckTimeoutMillis controls 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 again open for testing.
  • backups: Validate quote body length
  • MSRV has been increased to 1.85