Skip to content

Latest commit

 

History

History
159 lines (106 loc) · 6.42 KB

CHANGELOG.md

File metadata and controls

159 lines (106 loc) · 6.42 KB

Changelog

All notable changes to this project will be documented in this file.

[0.8.1] - 2024-10-08

Bug Fixes

  • Fix the compilation when the default features are disabled

0.8.0 - 2024-09-20

Features

  • Apply the const keyword to many methods (#167).

  • [BREAKING] The Account::sign() method now accepts an impl AsRef<[u8]> for the message instead of a &str. This has been streamlined to be like most of our other methods accepting a message to be encrypted. This change is mostly backwards compatible as the method will continue to accept a string.

The OlmMessage::from_parts() and OlmMessage::to_parts() methods now accept and return an &[u8] and Vec<u8> exclusively for the ciphertext. The base64_encode() and base64_decode() methods can be used to achieve the previous behavior (#176).

  • Add support for the libolm PkEncryption feature. This allows Matrix clients to implement the m.megolm_backup.v1.curve25519-aes-sha2 room key backup algorithm. Please note that this algorithm contains a critical flaw and should only be used for compatibility reasons (#171) (#180).

Refactor

  • Remove the pkcs7 crate from the list of dependencies (#164).

  • Remove Debug implementations for the libolm compat structs (#184).

0.7.0 - 2024-07-17

Features

  • Add an Elliptic Curve Integrated Encryption Scheme. This scheme can be used to establish a secure ephemeral encrypted channel, in situations for which Olm may be unsuitable due to complexity or the unavailability of long-term identity keys. There is also support for out-of-band authentication of the receiver side. The scheme was designed primarily for purposes of implementing Matrix QR code login. (#151).

Security

[0.6.0] - 2024-05-06

Security Fixes

Features

  • Track the number of Diffie-Hellman ratchet advances in the Olm Session. This number is useful only for debugging purposes and will be included in the Debug output of the Olm Session (#134).

Testing

[0.5.1] - 2024-02-05

Features

  • Include the ratchet key in the Debug output of the Session

[0.5.0] - 2023-10-06

Features

  • Add support for exporting an Account to a libolm pickle (#111)
  • Add base64 decoding and encoding methods to the public interface (#112)

[0.4.0] - 2023-05-31

Bug Fixes

  • Use the next key id from the libolm pickle instead of guessing

Features

  • Add a prettier display/debug implementation for Ed25519Signature
  • Introduce an upgrade method to the InboundGroupSession struct
  • Expose the version of vodozemac
  • Make Debug representation of the public key types prettier
  • Add a method to calculate the Session ID from a pre-key message
  • [breaking] Return the created and discarded one-time keys when generating new ones (#100)
  • [breaking] Return the fallback key which was removed when generating a new one
  • Expose the build-time git commit hash and description as static vars
  • Expose the Curve25519SecretKey type

Refactor

  • Rename the key_id field to next_key_id for clarity
  • Use the matrix-pickle crate for libolm unpickling support

Testing

  • Ensure signing_key_verified is handled when upgrading.

[0.3.0] - 2022-09-13

Bug Fixes

  • Accept a byteslice for the pickle key
  • Hide the remove_one_time_key method
  • Abort unpickling if we have too many one-time keys
  • Use overflowing addition when incrementing key ids

Documentation

  • Fix some typos and improve the InboundGroupSession docs
  • Clarify wording in OTK comment

Features

  • Add Debug and PartialEq implementations to MegolmMessage
  • Add a bunch of missing Eq imlpementations
  • Add TryFrom implementations for session keys
  • Allow GroupSessions to be unpickled from libolm pickles
  • Encode/decode bytes directly in Olm (no string wrapping)
  • Encode/decode bytes directly in megolm (no string wrapping)
  • Allow megolm messages to be cloned
  • Add a method to check if two inbound group sessions are connected
  • Add a method to compare two inbound group sessions
  • Add support to not truncate MAC tags when encrypting messages
  • Implement Display for the public key types
  • Implement zeroize for the SessionKey

Refactor

  • Remove the encoded public key from the curve25519 types
  • Remove the encoded public key methods
  • Remove the encoded one-time keys method
  • Create a LibolmEd25519Keypair struct
  • Move the libolm RatchetPickle to a common module
  • Move the libolm unpickling structs out of the method
  • Improve the Debug implementation for SessionKeys
  • Refrain from repeating method call.
  • Group the session key methods correctly