Skip to main content

ChipError

Enum ChipError 

Source
pub enum ChipError {
    CheckMacOrVerifyFailed,
    ParseError,
    EccFault,
    SelfTestFailed,
    HealthTestFailed,
    ExecutionError,
    WatchdogAboutToExpire,
    CommandCrcError,
    Unknown(u8),
}
Expand description

Errors reported by the chip itself via a 4-byte response frame.

Status byte values are taken from the Microchip CryptoAuthLib isATCAError() function.

Variants§

§

CheckMacOrVerifyFailed

0x01 - CheckMac or Verify failed.

§

ParseError

0x03 - Command byte length, opcode or parameter was illegal.

§

EccFault

0x05 - Computation error during ECC processing causing invalid results.

§

SelfTestFailed

0x07 - Chip is in self test failure mode.

§

HealthTestFailed

0x08 - RNG health test error.

§

ExecutionError

0x0F - Unspecified execution error.

§

WatchdogAboutToExpire

0xEE - Watchdog about to expire - command not executed.

§

CommandCrcError

0xFF - CRC or other communication error on the command sent to the chip.

§

Unknown(u8)

An unknown status byte. The raw value is preserved for diagnosis.

Implementations§

Source§

impl ChipError

Source

pub const fn from_status_byte(byte: u8) -> Option<Self>

Map a raw status byte returned by the chip to a ChipError.

Returns None for 0x00 which means success. Exposed as pub so host-side decoders (e.g. the CLI) can reconstruct the variant from the wire byte received in the USB-HID payload.

Source

pub const fn as_status_byte(self) -> u8

Return the raw status byte this variant came from.

Inverse of Self::from_status_byte. For ChipError::Unknown returns the preserved raw byte.

Trait Implementations§

Source§

impl Clone for ChipError

Source§

fn clone(&self) -> ChipError

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ChipError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for ChipError

Source§

fn eq(&self, other: &ChipError) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for ChipError

Source§

impl Eq for ChipError

Source§

impl StructuralPartialEq for ChipError

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.