pub enum Error {
GenericError(Option<String>),
ProtocolError,
EOF,
InaccessibleDecryptionKey(Vec<InaccessibleDecryptionKey>),
NotDecryptionCapable(String),
NotSigningCapable(String),
InternalError(String),
ExternalImportRequired(Option<String>),
SecretKeyMaterialSealed(Option<String>),
NoInlinePassword(Option<String>),
NoExternalPassword(Option<String>),
RpcError(Error),
}Expand description
Errors returned from the keystore.
Variants§
GenericError(Option<String>)
A generic error occurred.
The other error variants aren’t appropriate for representing this error. The text describes what went wrong.
ProtocolError
An unspecified protocol error occurred.
EOF
An end of file condition was reached.
This is also used for iterations to indicate that there are no more items.
InaccessibleDecryptionKey(Vec<InaccessibleDecryptionKey>)
An operation couldn’t be completed, because a required key is inaccessible (unavailable, or locked).
This is returned by Keystore::decrypt. Repeat the operation
after ensuring that one of the keys is available by prompting
the user to connect it, or unlocking the key.
NotDecryptionCapable(String)
The key cannot be used for decryption.
NotSigningCapable(String)
The key cannot be used for signing.
InternalError(String)
An internal server error occurred.
ExternalImportRequired(Option<String>)
The backend doesn’t support importing keys using this interface.
Some backends require backend-specific information in order to import a key. For instance, when importing a key to a smartcard, the user needs to specify the smartcard, and the slot to use on the smartcard. Rather than try and model these parameters using this generic interface, backends should just have their own tools. The text should be a hint that is displayed to the user describing how to find the tool.
SecretKeyMaterialSealed(Option<String>)
The secret key material cannot be exported.
This error is returned by Key::export if the secret key
material cannot be exported. Many backends do not allow
exporting secret key material. Some may only allow exporting
secret key material in admin mode. The text is a more
detailed description of why this is not possible, or what the
user could do to export the secret key material.
NoInlinePassword(Option<String>)
The key doesn’t support inline passwords.
Password entry is taken care of by the device managing the key. For instance, the password may be obtained using an external PIN pad.
NoExternalPassword(Option<String>)
The key doesn’t support getting passwords.
The password must be provided inline. The password cannot be obtained using something like an external PIN pad.
RpcError(Error)
A capnp::Error occurred.