Skip to main content

core_crypto/error/
open_mls.rs

1/// A MLS operation failed, but we captured some context about how it did so
2pub type OpenMlsError = super::wrapper::WrappedContextualError<OpenMlsErrorKind>;
3
4/// Openmls produces these kinds of error
5#[derive(Debug, thiserror::Error)]
6pub enum OpenMlsErrorKind {
7    /// Welcome error
8    #[error(transparent)]
9    MlsWelcomeError(#[from] openmls::prelude::WelcomeError<core_crypto_keystore::CryptoKeystoreError>),
10    /// Generic error type that indicates unrecoverable errors in the library. See [openmls::error::LibraryError]
11    #[error(transparent)]
12    MlsLibraryError(#[from] openmls::error::LibraryError),
13    /// Create message error
14    #[error(transparent)]
15    MlsInvalidMessageError(#[from] openmls::prelude::CreateMessageError),
16    /// An error that occurs in methods of a [openmls::credentials::Credential].
17    #[error(transparent)]
18    MlsCredentialError(#[from] openmls::prelude::CredentialError),
19    /// New group error
20    #[error(transparent)]
21    MlsNewGroupError(#[from] openmls::prelude::NewGroupError<core_crypto_keystore::CryptoKeystoreError>),
22    /// Add members error
23    #[error(transparent)]
24    MlsAddMembersError(#[from] openmls::prelude::AddMembersError<core_crypto_keystore::CryptoKeystoreError>),
25    /// Remove members error
26    #[error(transparent)]
27    MlsRemoveMembersError(#[from] openmls::prelude::RemoveMembersError<core_crypto_keystore::CryptoKeystoreError>),
28    /// Parse message error
29    #[error(transparent)]
30    MlsMessageError(#[from] openmls::prelude::ProcessMessageError),
31    /// `KeyPackageBundle` new error
32    #[error(transparent)]
33    MlsKeyPackageBundleNewError(
34        #[from] openmls::prelude::KeyPackageNewError<core_crypto_keystore::CryptoKeystoreError>,
35    ),
36    /// Self update error
37    #[error(transparent)]
38    MlsSelfUpdateError(#[from] openmls::prelude::SelfUpdateError<core_crypto_keystore::CryptoKeystoreError>),
39    /// Group state error
40    #[error(transparent)]
41    MlsGroupStateError(#[from] openmls::prelude::MlsGroupStateError),
42    /// Propose add members error
43    #[error(transparent)]
44    ProposeAddMemberError(#[from] openmls::prelude::ProposeAddMemberError),
45    /// Propose remove members error
46    #[error(transparent)]
47    ProposeRemoveMemberError(#[from] openmls::prelude::ProposeRemoveMemberError),
48    /// Commit to pending proposals error
49    #[error(transparent)]
50    MlsCommitToPendingProposalsError(
51        #[from] openmls::prelude::CommitToPendingProposalsError<core_crypto_keystore::CryptoKeystoreError>,
52    ),
53    /// Errors that are thrown by TLS serialization crate.
54    #[error(transparent)]
55    MlsTlsCodecError(#[from] tls_codec::Error),
56    /// This type represents all possible errors that can occur when serializing or
57    /// deserializing JSON data.
58    #[error(transparent)]
59    MlsKeystoreSerializationError(#[from] serde_json::Error),
60    /// External Commit error
61    #[error(transparent)]
62    MlsExternalCommitError(#[from] openmls::prelude::ExternalCommitError),
63    /// OpenMls crypto error
64    #[error(transparent)]
65    MlsCryptoError(#[from] openmls::prelude::CryptoError),
66    /// OpenMls Export Secret error
67    #[error(transparent)]
68    MlsExportSecretError(#[from] openmls::prelude::ExportSecretError),
69    /// OpenMLS merge commit error
70    #[error(transparent)]
71    MlsMergeCommitError(#[from] openmls::prelude::MergeCommitError<core_crypto_keystore::CryptoKeystoreError>),
72    /// OpenMLS Commit merge error
73    #[error(transparent)]
74    MlsMergePendingCommitError(
75        #[from] openmls::prelude::MergePendingCommitError<core_crypto_keystore::CryptoKeystoreError>,
76    ),
77    /// OpenMLS encrypt message error
78    #[error(transparent)]
79    MlsEncryptMessageError(#[from] openmls::framing::errors::MlsMessageError),
80    /// OpenMLS GroupInfo error
81    #[error(transparent)]
82    GroupInfoError(#[from] openmls::messages::group_info::GroupInfoError),
83    /// Provider Error
84    #[error(transparent)]
85    ProviderError(#[from] crate::mls_provider::Error),
86    /// Keystore Error
87    #[error(transparent)]
88    KeystoreError(#[from] core_crypto_keystore::CryptoKeystoreError),
89    /// Signature Error
90    #[error(transparent)]
91    SignatureError(#[from] openmls::prelude::SignatureError),
92}