#[non_exhaustive]pub enum Error {
Show 18 variants
Pcsc(Error),
NoReader,
ReaderNotFound(String),
Status(StatusWord),
ShortResponse(usize),
DataTooLong(usize),
ExpectedLengthOutOfRange(u32),
PinIncorrect {
retries: Option<u8>,
},
PinBlocked,
InvalidPin(&'static str),
OffsetOutOfRange(usize),
InvalidDfName(usize),
NoShortEfId(u16),
InvalidRecordNumber,
BadSigningInput {
scheme: SignatureScheme,
len: usize,
},
UnknownCertificateAuthority(KeyId),
SignatureInvalid(&'static str),
Malformed(String),
}Expand description
Anything that can go wrong while talking to an Individual Number Card.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Pcsc(Error)
An error reported by the PC/SC layer.
NoReader
No PC/SC reader is available.
ReaderNotFound(String)
The named PC/SC reader does not exist.
Status(StatusWord)
The card returned a status word other than success.
ShortResponse(usize)
The response was too short to even contain a status word.
DataTooLong(usize)
The command data field exceeds what even an extended APDU can encode.
ExpectedLengthOutOfRange(u32)
Le is outside the 1 to 65536 an APDU can ask for.
PinIncorrect
The PIN was rejected.
retries is the number of attempts left before the key is blocked, or None if the key
has no retry limit (JICSAP 5.2.2: the card answers 6300 rather than 63Cx).
PinBlocked
The key is blocked because its retry counter reached zero.
InvalidPin(&'static str)
The supplied PIN is not well formed.
OffsetOutOfRange(usize)
The requested offset cannot be encoded in a short READ BINARY.
InvalidDfName(usize)
A DF name must be 1 to 16 bytes (JICSAP 4.2 (1)).
NoShortEfId(u16)
The EF identifier has no short form; only 0001-001E do (JICSAP 4.2 (2)).
InvalidRecordNumber
Record 0 means “the current record”, which this crate does not use.
BadSigningInput
The data field does not suit the signing scheme it was given to.
Fields
scheme: SignatureSchemeThe scheme the data was rejected for.
UnknownCertificateAuthority(KeyId)
A card-verifiable certificate names a CA this crate has no key for.
Distinct from a failed signature: nothing was checked. See crate::ca.
SignatureInvalid(&'static str)
A signature did not verify under the key it was checked against.
Malformed(String)
Data read from the card did not have the expected structure.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
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
use the Display impl or to_string()