pub enum KeyError {
Show 40 variants
File(FileError),
Keyring(Error),
KeyringWorkerStart(Error),
KeyringWorkerStopped {
operation: &'static str,
},
Custody {
operation: &'static str,
source: Box<dyn Error + Sync + Send>,
},
Json {
operation: &'static str,
source: Error,
},
Hex {
subject: &'static str,
source: FromHexError,
},
InvalidLength {
subject: &'static str,
expected: usize,
actual: usize,
},
SigningKey(Error),
Encryption(EncryptionError),
Utf8(FromUtf8Error),
Base64(DecodeError),
PassphraseKdf {
operation: &'static str,
source: Box<dyn Error + Sync + Send>,
},
UnsupportedPassphraseEnvelopeVersion {
actual: u32,
expected: u32,
},
UnsupportedPassphraseKdf {
actual: String,
expected: &'static str,
},
WeakArgon2Parameter {
parameter: &'static str,
actual: u32,
minimum: u32,
},
PassphraseEnvelopeDecryption,
SealedBoxDecryption,
InvalidEd25519PublicKey,
WeakEd25519PublicKey,
AllZeroX25519PublicKey,
AllZeroX25519SharedSecret,
PlaintextCloudKeyRotation,
UnretainedKeyRotation,
ServiceAlreadyRegistered {
registered: String,
requested: String,
},
EmptyKeyringEntry {
account: String,
},
CloudCredentialsRolledBack {
operation: &'static str,
},
CloudCredentialsSuperseded,
MasterKeySetupRolledBack {
operation: &'static str,
},
UnexpectedAppleKeyringEntry,
UnexpectedTestKeyringEntry,
StoreNotInstalled,
UnsupportedKeyringPlatform,
ServiceNotRegistered,
NoDeviceIdentity,
IdentityMismatch {
existing_pubkey_hex: String,
imported_pubkey_hex: String,
},
NoPendingIdentity {
pending_public_key_hex: String,
},
InvalidSecretName {
name: String,
reason: String,
},
MissingKeychainEntitlement,
KeychainTemporarilyUnavailable,
}Variants§
File(FileError)
Keyring(Error)
KeyringWorkerStart(Error)
KeyringWorkerStopped
Custody
Json
Hex
InvalidLength
SigningKey(Error)
Encryption(EncryptionError)
Utf8(FromUtf8Error)
Base64(DecodeError)
PassphraseKdf
UnsupportedPassphraseEnvelopeVersion
UnsupportedPassphraseKdf
WeakArgon2Parameter
PassphraseEnvelopeDecryption
SealedBoxDecryption
InvalidEd25519PublicKey
WeakEd25519PublicKey
AllZeroX25519PublicKey
PlaintextCloudKeyRotation
UnretainedKeyRotation
ServiceAlreadyRegistered
EmptyKeyringEntry
CloudCredentialsRolledBack
CloudCredentialsSuperseded
MasterKeySetupRolledBack
UnexpectedAppleKeyringEntry
UnexpectedTestKeyringEntry
StoreNotInstalled
UnsupportedKeyringPlatform
ServiceNotRegistered
NoDeviceIdentity
IdentityMismatch
NoPendingIdentity
InvalidSecretName
MissingKeychainEntitlement
The OS refused a Keychain data-protection-store operation with
errSecMissingEntitlement (OSStatus -34018). This is not “the binary
isn’t signed” — an ad-hoc or Development-signed binary with no
keychain-access-groups entitlement at all also gets -34018, and a
signed binary that does carry that entitlement with no provisioning
profile behind it is killed by the kernel at launch instead. The fix is
a team-prefixed keychain-access-groups entitlement backed by an
embedded provisioning profile — in Xcode, set DEVELOPMENT_TEAM so
automatic signing fetches and embeds one. A build with no team must
omit the entitlement entirely, which means it also has no access to
the data-protection keychain and will hit this error on first use.
The OS refused this keychain operation with errSecInteractionNotAllowed
(OSStatus -25308): the keychain is locked, the display is asleep, or the
login session cannot show UI. Nothing is wrong with the entry or with
this process’s entitlements — the same operation succeeds once the
session unlocks, so a caller that needs the key should say so and try
again rather than treat the store as broken or the key as absent.
Trait Implementations§
Source§impl Error for KeyError
impl Error for KeyError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<EncryptionError> for KeyError
impl From<EncryptionError> for KeyError
Source§fn from(source: EncryptionError) -> KeyError
fn from(source: EncryptionError) -> KeyError
Source§impl From<FromUtf8Error> for KeyError
impl From<FromUtf8Error> for KeyError
Source§fn from(source: FromUtf8Error) -> KeyError
fn from(source: FromUtf8Error) -> KeyError
Source§impl From<KeyError> for BootstrapError
impl From<KeyError> for BootstrapError
Source§fn from(source: KeyError) -> BootstrapError
fn from(source: KeyError) -> BootstrapError
Source§impl From<KeyError> for CircleError
impl From<KeyError> for CircleError
Source§impl From<KeyError> for DevicePairingError
impl From<KeyError> for DevicePairingError
Source§fn from(source: KeyError) -> DevicePairingError
fn from(source: KeyError) -> DevicePairingError
Source§impl From<KeyError> for DevicePairingTransportError
impl From<KeyError> for DevicePairingTransportError
Source§fn from(source: KeyError) -> DevicePairingTransportError
fn from(source: KeyError) -> DevicePairingTransportError
Source§impl From<KeyError> for IdentityError
impl From<KeyError> for IdentityError
Source§fn from(source: KeyError) -> IdentityError
fn from(source: KeyError) -> IdentityError
Source§impl From<KeyError> for MasterKeyError
impl From<KeyError> for MasterKeyError
Source§fn from(source: KeyError) -> MasterKeyError
fn from(source: KeyError) -> MasterKeyError
Source§impl From<KeyError> for StorageError
impl From<KeyError> for StorageError
Source§fn from(source: KeyError) -> StorageError
fn from(source: KeyError) -> StorageError
Auto Trait Implementations§
impl Freeze for KeyError
impl !RefUnwindSafe for KeyError
impl Send for KeyError
impl Sync for KeyError
impl Unpin for KeyError
impl UnsafeUnpin for KeyError
impl !UnwindSafe for KeyError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more