Struct lpc55::protected_flash::Keycode
source · [−]pub struct Keycode(_);
Expand description
Input to regenerate keys “stored” in the PUF.
TODO: split into
- key code valid (first four bytes)
- key parameters (user/generated, length, …?)
- actual keycode = last 52 bytes
Empirically, these arrays start with either ‘59595959 01000002’ for 16B keys, or ‘59595959 00000004’ for 32B keys.
A generated UDS key example seens in the wild starts with 59595959 010F0004
however.
Presumably (entire paragraph is speculative), this is followed by 32B of input to be XOR’d or whatnot with the 32B “fingerprint” derived from PUF “startup data” via error correction with the “activation code” (and then truncated to key length). Which would leave 16B hash.
Implementations
Trait Implementations
sourceimpl<'de> Deserialize<'de> for Keycode
impl<'de> Deserialize<'de> for Keycode
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl Ord for Keycode
impl Ord for Keycode
1.21.0 · sourcefn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialOrd<Keycode> for Keycode
impl PartialOrd<Keycode> for Keycode
sourcefn partial_cmp(&self, other: &Keycode) -> Option<Ordering>
fn partial_cmp(&self, other: &Keycode) -> Option<Ordering>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl Copy for Keycode
impl Eq for Keycode
impl StructuralEq for Keycode
impl StructuralPartialEq for Keycode
Auto Trait Implementations
impl RefUnwindSafe for Keycode
impl Send for Keycode
impl Sync for Keycode
impl Unpin for Keycode
impl UnwindSafe for Keycode
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.sourceimpl<T> ToHex for Twhere
T: AsRef<[u8]>,
impl<T> ToHex for Twhere
T: AsRef<[u8]>,
sourcefn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
Encode the hex strict representing
self
into the result. Lower case
letters are used (e.g. f9b4ca
) Read moresourcefn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
Encode the hex strict representing
self
into the result. Upper case
letters are used (e.g. F9B4CA
) Read more