core_crypto/error/
mls.rs

1/// A MLS operation failed, but we captured some context about how it did so
2pub type MlsError = super::wrapper::WrappedContextualError<MlsErrorKind>;
3
4/// Openmls produces these kinds of error
5#[derive(Debug, thiserror::Error, strum::IntoStaticStr)]
6pub enum MlsErrorKind {
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    /// EmptyInput error
17    #[error(transparent)]
18    MlsEmptyInputError(#[from] openmls::prelude::EmptyInputError),
19    /// An error that occurs in methods of a [openmls::credentials::Credential].
20    #[error(transparent)]
21    MlsCredentialError(#[from] openmls::prelude::CredentialError),
22    /// New group error
23    #[error(transparent)]
24    MlsNewGroupError(#[from] openmls::prelude::NewGroupError<core_crypto_keystore::CryptoKeystoreError>),
25    /// Add members error
26    #[error(transparent)]
27    MlsAddMembersError(#[from] openmls::prelude::AddMembersError<core_crypto_keystore::CryptoKeystoreError>),
28    /// Remove members error
29    #[error(transparent)]
30    MlsRemoveMembersError(#[from] openmls::prelude::RemoveMembersError<core_crypto_keystore::CryptoKeystoreError>),
31    /// Parse message error
32    #[error(transparent)]
33    MlsMessageError(#[from] openmls::prelude::ProcessMessageError),
34    /// `KeyPackageBundle` new error
35    #[error(transparent)]
36    MlsKeyPackageBundleNewError(
37        #[from] openmls::prelude::KeyPackageNewError<core_crypto_keystore::CryptoKeystoreError>,
38    ),
39    /// Self update error
40    #[error(transparent)]
41    MlsSelfUpdateError(#[from] openmls::prelude::SelfUpdateError<core_crypto_keystore::CryptoKeystoreError>),
42    /// Group state error
43    #[error(transparent)]
44    MlsMlsGroupStateError(#[from] openmls::prelude::MlsGroupStateError),
45    /// Propose add members error
46    #[error(transparent)]
47    ProposeAddMemberError(#[from] openmls::prelude::ProposeAddMemberError),
48    /// Propose self update error
49    #[error(transparent)]
50    ProposeSelfUpdateError(#[from] openmls::prelude::ProposeSelfUpdateError<core_crypto_keystore::CryptoKeystoreError>),
51    /// Propose remove members error
52    #[error(transparent)]
53    ProposeRemoveMemberError(#[from] openmls::prelude::ProposeRemoveMemberError),
54    /// Commit to pending proposals error
55    #[error(transparent)]
56    MlsCommitToPendingProposalsError(
57        #[from] openmls::prelude::CommitToPendingProposalsError<core_crypto_keystore::CryptoKeystoreError>,
58    ),
59    /// Export public group state error
60    #[error(transparent)]
61    MlsExportGroupInfoError(#[from] openmls::prelude::ExportGroupInfoError),
62    /// Errors that are thrown by TLS serialization crate.
63    #[error(transparent)]
64    MlsTlsCodecError(#[from] tls_codec::Error),
65    /// This type represents all possible errors that can occur when serializing or
66    /// deserializing JSON data.
67    #[error(transparent)]
68    MlsKeystoreSerializationError(#[from] serde_json::Error),
69    /// A wrapper struct for an error string. This can be used when no complex error
70    /// variant is needed.
71    #[error(transparent)]
72    MlsErrorString(#[from] openmls::error::ErrorString),
73    /// External Commit error
74    #[error(transparent)]
75    MlsExternalCommitError(#[from] openmls::prelude::ExternalCommitError),
76    /// OpenMls crypto error
77    #[error(transparent)]
78    MlsCryptoError(#[from] openmls::prelude::CryptoError),
79    /// OpenMls Export Secret error
80    #[error(transparent)]
81    MlsExportSecretError(#[from] openmls::prelude::ExportSecretError),
82    /// OpenMLS merge commit error
83    #[error(transparent)]
84    MlsMergeCommitError(#[from] openmls::prelude::MergeCommitError<core_crypto_keystore::CryptoKeystoreError>),
85    /// OpenMLS keypackage validation error
86    #[error(transparent)]
87    MlsKeyPackageValidationError(#[from] openmls::prelude::KeyPackageVerifyError),
88    /// OpenMLS Commit merge error
89    #[error(transparent)]
90    MlsMergePendingCommitError(
91        #[from] openmls::prelude::MergePendingCommitError<core_crypto_keystore::CryptoKeystoreError>,
92    ),
93    /// OpenMLS encrypt message error
94    #[error(transparent)]
95    MlsEncryptMessageError(#[from] openmls::framing::errors::MlsMessageError),
96    /// OpenMLS delete KeyPackage error
97    #[error(transparent)]
98    MlsDeleteKeyPackageError(
99        #[from] openmls::key_packages::errors::KeyPackageDeleteError<core_crypto_keystore::CryptoKeystoreError>,
100    ),
101    /// OpenMLS update extensions error
102    #[error(transparent)]
103    MlsUpdateExtensionsError(
104        #[from] openmls::prelude::UpdateExtensionsError<core_crypto_keystore::CryptoKeystoreError>,
105    ),
106    /// OpenMLS LeafNode validation error
107    #[error(transparent)]
108    MlsLeafNodeValidationError(#[from] openmls::prelude::LeafNodeValidationError),
109    /// OpenMLS LeafNode validation error
110    #[error(transparent)]
111    RatchetTreeError(#[from] openmls::treesync::RatchetTreeError),
112    /// OpenMLS GroupInfo error
113    #[error(transparent)]
114    GroupInfoError(#[from] openmls::messages::group_info::GroupInfoError),
115    /// Provider Error
116    #[error(transparent)]
117    ProviderError(#[from] mls_crypto_provider::MlsProviderError),
118}