All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- #1637: Remove
serdefromMlsGroup. - #1638: Remove
serdefromPublicGroup.PublicGroup::load()becomes public to load a group from the storage provider.
- #1629: Add
add_members_without_updatefunction toMlsGroupto allow the creation of add-only commits - #1506: Add
StagedWelcomeandStagedCoreWelcometo make joining a group staged in order to inspect theWelcomemessage. This was followed up with PR #1533 to adjust the API. - #1516: Add
MlsGroup::clear_pending_proposalsto the public API; this allows users to clear a group's internalProposalStore - #1565: Add new
StorageProvidertrait to theopenmls_traitscrate.
- #1464: Add builder pattern for
MlsGroup; splitMlsGroupJoinConfigintoMlsGroupCreateConfigandMlsGroupJoinConfig - #1473: Allow setting group context extensions when building an MlsGroup(Config).
- #1475: Fully process GroupContextExtension proposals
- #1477: Allow setting leaf node extensions and capabilities of the group creator when creating an MlsGroup(Config)
- #1478: Remove explicit functions to set
RequiredCapabilitiesExtensionandExternalSendersExtensionwhen building an MlsGroup(Config) in favor of the more general function to set group context extensions - #1479: Allow the use of extensions with
ExtensionType::Unknownin group context, key packages and leaf nodes - #1488: Allow unknown credentials. Credentials other than the basic credential or X.509 may be used now as long as they are encoded as variable-sized vectors.
- #1527: CredentialType::Unknown is now called CredentialType::Other.
- #1543: PreSharedKeyId.write_to_key_store() no longer requires the cipher suite.
- #1546: Add experimental ciphersuite based on the PQ-secure XWing hybrid KEM (currently supported only by the libcrux crypto provider).
- #1548: CryptoConfig is now replaced by just Ciphersuite.
- #1542: Add support for custom proposals. ProposalType::Unknown is now called ProposalType::Other. Proposal::Unknown is now called Proposal::Other.
- #1559: Remove the
PartialEqtype constraint on the error type of both theOpenMlsRandandOpenMlsKeyStoretraits. Additionally, remove theClonetype constraint on the error type of theOpenMlsRandtrait. - #1565: Removed
OpenMlsKeyStoreand replace it with a newStorageProvidertrait in theopenmls_traitscrate. - #1606: Added additional
LeafNodeParametersargument toMlsGroup.self_update()andMlsGroup.propose_self_update()to allow for updating the leaf node with custom parameters.MlsGroup::join_by_external_commit()now also takes optional parameters to set the capabilities and the extensions of the LeafNode. - #1615: Changes the AAD handling. The AAD is no longer persisted and needs to be set before every API call that generates an
MlsMessageOut. The functionsProccessedMessageto accees the AAD has been renamed toaad().
- #1503: Fix
CoreGroupto check forLastResortExtensionbefore deleting leaf encryption keypair from the key store innew_from_welcome; this allows the sameKeyPackage(with last resort extension) to be used to join multiple groups
This release has many breaking API changes, a few of them are listed below:
- #902: Implement External Add proposal (NewMember sender only) and replace
bySender::NewMemberSender::NewMemberProposalandSender::NewMemberCommitfor external proposals and external commits repectively - #903: Rename MlsGroup's resumptionn_secret to resumption_secret
- #1058: Rename resumption_secret to resumption_psk
- #900: Expose SerializedMlsGroup until issue #245 is done
- #1117: Remove signature key indirection
- #1123: Rename ResumptionPsk to ResumptionPskSecret and resumption_psk to resumption_psk_secret
- #1155: MlsGroup.members() now returns an iterator over group members, MlsGroup.merge_staged_commit() no longer returns a Result
- #1193:
MlsGroup.propose_self_updatetakes the newLeafNodenow instead of aKeyPackage.LeafNode.generatecan be used to generate a newLeafNodefor an update proposal.
- #873: Signature sub-module of the ciphersuite module is now public.
- #873: Signature keys can be imported and exported with the crypto-subtle feature.
- #873: BasicCredentials can now be created from existing signature keys.
- #890: Join group by External Commit API does not expect proposal store.
- initial release
Please disregard any previous versions.