PeerKeyEntry

Struct PeerKeyEntry 

Source
pub struct PeerKeyEntry {
    pub public_key: [u8; 32],
    pub k_enc: [u8; 16],
    pub k_mic: [u8; 16],
}
Expand description

One PROP_HOST_PEER_KEYS entry in item form: the peer’s public key and the pairwise keys derived by the host. Secret-bearing — the digest form is Self::public_key alone.

Inserting an entry whose public key matches an existing entry replaces that entry’s key material (the spec’s exception to the STATUS_ALREADY duplicate rule).

Fields§

§public_key: [u8; 32]§k_enc: [u8; 16]§k_mic: [u8; 16]

Implementations§

Source§

impl PeerKeyEntry

Source

pub const WIRE_LEN: usize = 64usize

Source

pub fn encode(&self, out: &mut [u8]) -> Result<usize, ItemError>

Source

pub fn decode(input: &[u8]) -> Result<Self, ItemError>

Decode an item occupying the whole input.

Source

pub fn digest(&self) -> &[u8; 32]

The entry’s digest form (and remove selector): the public key, never the pairwise keys.

Trait Implementations§

Source§

impl Clone for PeerKeyEntry

Source§

fn clone(&self) -> PeerKeyEntry

Returns a duplicate of the value. Read more
1.0.0§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for PeerKeyEntry

Debug intentionally omits k_enc/k_mic: entries must never leak key material into logs or panic messages.

Source§

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

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

impl PartialEq for PeerKeyEntry

Source§

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

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

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 PeerKeyEntry

Source§

impl Eq for PeerKeyEntry

Source§

impl StructuralPartialEq for PeerKeyEntry

Auto Trait Implementations§

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

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

§

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
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.