core_crypto/e2e_identity/
error.rs1use crate::prelude::MlsCredentialType;
4use core_crypto_keystore::CryptoKeystoreError;
5
6pub type E2eIdentityResult<T> = Result<T, E2eIdentityError>;
8
9#[derive(Debug, thiserror::Error)]
11#[cfg_attr(feature = "uniffi", derive(uniffi::Error))]
12#[cfg_attr(feature = "uniffi", uniffi(flat_error))]
13pub enum E2eIdentityError {
14 #[error("Incorrect usage of this API")]
16 ImplementationError,
17 #[error("Not yet supported")]
19 NotYetSupported,
20 #[error("Expected a MLS client with credential type {0:?} but none found")]
22 MissingExistingClient(MlsCredentialType),
23 #[error("Enrollment methods are called out of order: {0}")]
25 OutOfOrderEnrollment(&'static str),
26 #[error("Invalid OIDC RefreshToken supplied")]
28 InvalidRefreshToken,
29 #[error("An error occurred while trying to persist the RefreshToken in the keystore")]
31 KeyStoreError(#[from] CryptoKeystoreError),
32 #[error(transparent)]
34 IdentityError(#[from] wire_e2e_identity::prelude::E2eIdentityError),
35 #[error(transparent)]
37 X509Error(#[from] wire_e2e_identity::prelude::x509::RustyX509CheckError),
38 #[error(transparent)]
40 UrlError(#[from] url::ParseError),
41 #[error(transparent)]
43 JsonError(#[from] serde_json::Error),
44 #[error("We already have an ACME Root Trust Anchor registered. Cannot proceed but this is usually indicative of double registration and can be ignored")]
46 TrustAnchorAlreadyRegistered,
47}