pub enum KeyError {
Crypto(String),
Persistence(String),
StoreNotInstalled,
UnsupportedKeyringPlatform,
ServiceNotRegistered,
NoDeviceIdentity,
IdentityMismatch {
existing_pubkey_hex: String,
imported_pubkey_hex: String,
},
NoPendingIdentity {
request_public_key_hex: String,
},
InvalidSecretName {
name: String,
reason: String,
},
StaleKeyRotation,
MissingKeychainEntitlement,
}Variants§
Crypto(String)
Persistence(String)
StoreNotInstalled
UnsupportedKeyringPlatform
ServiceNotRegistered
NoDeviceIdentity
IdentityMismatch
NoPendingIdentity
InvalidSecretName
StaleKeyRotation
Adopting a rotated store key found, under the write lock, that the incoming keyring adds nothing to the live one — a concurrent op already adopted a keyring that covers it. Failing loud keeps the delayed apply from regressing the seal key or custody.
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.
Trait Implementations§
Source§impl Error for KeyError
impl Error for KeyError
1.30.0 · 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<KeyError> for BootstrapError
impl From<KeyError> for BootstrapError
Source§impl From<KeyError> for IdentityError
impl From<KeyError> for IdentityError
Source§impl From<KeyError> for MasterKeyError
impl From<KeyError> for MasterKeyError
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