Skip to content

Releases: signalapp/libsignal

v0.65.0

07 Jan 22:51
Compare
Choose a tag to compare
- Added a validity-checking function to AccountEntropyPool.

- Rust: The EC key types have been moved to libsignal_core::curve.
  They are still exported through libsignal_protocol as before, but a
  few of the signatures have changed.

- The libsignal-net ChatConnection APIs have been exposed to Swift.
  These will eventually replace the ChatService APIs.

- libsignal-net: enabled support for Ed25519 TLS certificates

- Fixed username printing for discriminators under 10

- Many backup validator improvements
  - Require a Self recipient
  - Disallow IDs of 0
  - Disallow timestamps not representable by JS Date
    (more than 100,000,000 days from the epoch)
  - Chat.pinnedOrder of 0 is no longer treated as "unpinned"
  - Stricter checking of many messages

- Key transparency: the "monitor" API has been exposed to Java.

- Removed support for the old AuthCredential versions

- Removed SVR3 from all app bridges

- Changed the representation of pointers in the Swift (ffi) bridge
  layer. This has always been considered an unstable interface, but if
  you're using it anyway, you'll need to adjust for the new types that
  are more Swift-friendly.

v0.64.1

06 Dec 21:50
Compare
Choose a tag to compare
- Backups: Support BackupInfo.currentAppVersion and firstAppVersion fields

v0.64.0

06 Dec 17:15
Compare
Choose a tag to compare
- Improve the performance of both the online and whole-file backup validation
  methods.

- Add a CLI utility to "scramble" backups by removing the most obvious
  identifying information.

- Import various backup validation proto changes, and tighten validation of
  distribution lists to disallow duplicate entries.

- Java: the key transparency Store abstraction has been reworked.

- The version of our `boring` dependency is now v4.13.0, which incorporates the
  changes of the upstream project through the same version.

v0.63.0

22 Nov 22:59
Compare
Choose a tag to compare
- Introduce OnlineBackupValidator, while accepts serialized protobuf
  frames rather than processing an entire file at once.

- Swift: SignalError.backupValidation was **removed** in favor of
  MessageBackupValidationError, which it was essentially redundant
  with.

- ChatService will soon be replaced by ChatConnection, currently
  experimentally available in Node. (All of the networking-related
  APIs are still even more subject to change than the rest of
  libsignal.

- The Node library now requires ES2021.

- Methods issuing older AuthCredential formats were deprecated and
  will be removed in a future release.

- Support for the CDSI option 'return_acis_without_uaks' was removed;
  it was already ignored by the service.

- Further backup validator proto updates and performance improvements,
  including use of an extra worker thread for pipelining entire-file
  processing. ChatItem errors will now include the dateSent timestamp.

- Further work on both key transparency and libsignal-net.

v0.62.0

13 Nov 21:09
Compare
Choose a tag to compare
- Android: AuthenticatedChatService can now receive messages via the
  ChatListener interface. (This is a breaking change if you were
  previously constructing AuthenticatedChatService.)

- Further backup validator updates:
  - Allow PNI-only contacts
  - Allow Chat.muteUntilMs of INT64_MAX ("mute forever")
  - Update Backup.proto (several fields now use `optional`)
  - Suppress repeated warnings about the same timestamp field
  - Buffer the input stream for all app languages

- SHA-2 performance improved on 64-bit Android, iOS, macOS, and Linux

- Rust: Add ServiceId::to_protocol_address (thanks, @rubdos!)

Note: though some key transparency APIs have been exposed to Android,
they are not yet finalized.

v0.61.0

06 Nov 23:12
Compare
Choose a tag to compare
- Net: Chat now throws RateLimitedError/RetryLaterException when the server requests a retry
- Node: Switched from yarn to npm to align with other Signal projects
- Android: Split ChatService into Unauthenticated.. and AuthenticatedChatService for platform consistency
- Attest: Removed unused IAS attestation code and tests
- Backup: Made timestamps optional for AttachmentLocator:uploadTimestamp and ChatItem:dateServerSent

v0.60.2

31 Oct 20:14
Compare
Choose a tag to compare
- Add BackupKey.deriveThumbnailTransitEncryptionKey
- Backup validator: Allow "unknown" restrictions for call links

v0.60.1

29 Oct 20:53
Compare
Choose a tag to compare
- Expose more key derivations to apps via new BackupKey class, as well
  as additional APIs on MessageBackupKey and AccountEntropyPool.

- Adjust backup ID derivation from a BackupKey once more (hopefully
  the last time).

- iOS: Make incremental MAC chunk size value accessible

- Node: Properly re-export BackupCredentialType through zkgroup module

- Internal change: Use new websocket event handler for attested
  connections. This should not produce any difference in behavior,
  but if any is observed this might be the cause.

v0.60.0

23 Oct 21:57
Compare
Choose a tag to compare
- Add BackupCredentialType to BackupAuthCredential, and rename the
  members of BackupLevel. This is a **breaking change**: old
  credentials will no longer work, and client and server have to
  agree on the credentials being used. BackupAuthCredential also
  now uses the "new" key derivation for the backup ID.

- MessageBackupKey now supports the "new" key derivations using an
  "account entropy pool" string, as well as from a backup key and ID.
  The "old" derivation from a "master key" has been deprecated in all
  languages and will be removed in a future release.

- The backup validator now requires a mediaRootBackupKey in the
  BackupInfo proto.

- Provide additional information on CDSI errors.

- swift: Initial audit for Sendable.

- Rust: Update boring to signal-v4.9.0b to fix build with newer
  LLVM/libclang.

v0.59.0

18 Oct 23:49
Compare
Choose a tag to compare
- Rename "pin" crate to "account-keys", to reflect expanding functionality
- Backup: Be more precise about when expiration should have started
- Node: Change Net constructor to accomodate localhost testing.