Module prelude

Source
Expand description

Common imports that should be useful for most uses of the crate

Re-exports§

pub use crate::CoreCrypto;
pub use crate::MlsTransport;
pub use crate::e2e_identity::E2eiEnrollment;
pub use crate::e2e_identity::types::E2eiAcmeChallenge;
pub use crate::e2e_identity::types::E2eiAcmeDirectory;
pub use crate::e2e_identity::types::E2eiNewAcmeAuthz;
pub use crate::e2e_identity::types::E2eiNewAcmeOrder;
pub use crate::mls::MlsCentral;
pub use crate::mls::conversation::ConversationId;
pub use crate::mls::conversation::MlsConversation;

Structs§

CertificateBundle
Represents a x509 certificate chain supplied by the client It can fetch it after an end-to-end identity process where it can get back a certificate from the Authentication Service
Client
Represents a MLS client which in our case is the equivalent of a device.
ClientId
A Client identifier
Credential
Credential.
EntropySeed
Wrapped 32-byte entropy seed with bounds check
GroupEpoch
Group epoch. Internally this is stored as a u64. The group epoch is incremented with every valid Commit that is merged into the group state.
KeyPackage
The key package struct.
KeyPackageIn
The key package struct.
KeystoreError
A key store operation failed
MlsBufferedConversationDecryptMessage
Type safe recursion of MlsConversationDecryptMessage
MlsCentralConfiguration
Configuration parameters for MlsCentral
MlsCiphersuite
A wrapper for the OpenMLS Ciphersuite, so that we are able to provide a default value.
MlsCommitBundle
Returned when a commit is created
MlsConversationConfiguration
The configuration parameters for a group/conversation
MlsConversationCreationMessage
Returned when initializing a conversation through a commit. Different from conversation created from a [openmls::prelude::Welcome] message or an external commit.
MlsConversationDecryptMessage
Represents the potential items a consumer might require after passing us an encrypted message we have decrypted for him
MlsCryptoProvider
MlsCustomConfiguration
The configuration parameters for a group/conversation which are not handled natively by openmls
MlsGroup
A MlsGroup represents an MLS group with a high-level API. The API exposes high level functions to manage a group by adding/removing members, get the current member list, etc.
MlsGroupConfig
Specifies the configuration parameters for a MlsGroup. Refer to the User Manual for more information about the different configuration values.
MlsGroupInfoBundle
A [GroupInfo] with metadata
MlsMessageIn
Before use with the MlsGroup API, the message has to be unpacked via extract to yield its [MlsMessageInBody].
MlsProposalBundle
Returned when a Proposal is created. Helps roll backing a local proposal
MlsProposalRef
Abstraction over a [openmls::prelude::hash_ref::ProposalRef] to deal with conversions
Obfuscated
We often want logging for some values that we shouldn’t know the real value of, for privacy reasons.
VerifiableGroupInfo
A type that represents a group info of which the signature has not been verified. It implements the [Verifiable] trait and can be turned into a group info by calling verify(...) with the signature key of the Credential. When receiving a serialized group info, it can only be deserialized into a VerifiableGroupInfo, which can then be turned into a group info as described above.
WelcomeBundle
Contains everything client needs to know after decrypting an (encrypted) Welcome message
WireIdentity
Represents the identity claims identifying a client Those claims are verifiable by any member in the group
X509Identity
Represents the parts of WireIdentity that are specific to a X509 certificate (and not a Basic one).

Enums§

CiphersuiteName
MLS ciphersuites.
ClientIdentifier
Used by consumers to initializes a MLS client. Encompasses all the client types available. Could be enriched later with Verifiable Presentations.
DeviceStatus
Indicates the standalone status of a device Credential in a MLS group at a moment T. This does not represent the states where a device is not using MLS or is not using end-to-end identity
E2eiConversationState
Indicates the state of a Conversation regarding end-to-end identity.
Error
Errors produced by the root module group
GroupInfoPayload
Represents the byte array in MlsGroupInfoBundle
LeafError
These errors can be raised from several different modules, so we centralize the definitions here to ease error-handling.
MlsCredentialType
Lists all the supported Credential types. Could list in the future some types not supported by openmls such as Verifiable Presentation
MlsGroupInfoEncryptionType
GroupInfoEncryptionType
MlsProposal
Internal representation of proposal to ease further additions
MlsRatchetTreeType
RatchetTreeType
MlsWirePolicy
Wrapper over WireFormatPolicy
Node
Container enum for leaf and parent nodes.
RecursiveError
These errors wrap each of the module-specific errors in CoreCrypto.

Constants§

INITIAL_KEYING_MATERIAL_COUNT
Default number of KeyPackages a client generates the first time it’s created

Traits§

EpochObserver
An EpochObserver is notified whenever a conversation’s epoch changes.

Type Aliases§

CryptoboxMigrationError
KeyPackageRef
A reference to a key package. This value uniquely identifies a key package.
MlsError
A MLS operation failed, but we captured some context about how it did so
ProteusError
A Proteus operation failed, but we captured some context about how it did so
RawEntropySeed
32-byte raw entropy seed