Skip to main content

KeyCertStatement

Struct KeyCertStatement 

Source
pub struct KeyCertStatement {
    pub agora_governance_key_cert: u32,
    pub key: PublicKeyHex,
    pub purpose: CertPurpose,
    pub from_seq: u64,
    pub prev_hash: Option<Sha256Hex>,
    pub last_trusted: Option<TrustedHead>,
}
Expand description

What a root key signs: key holds the chain from from_seq.

Every field is always serialized, null when absent, and unknown fields are refused: the bytes a verifier rebuilds are exactly the bytes the Steward read before touching the device.

Fields§

§agora_governance_key_cert: u32§key: PublicKeyHex

The online signing key being certified

§purpose: CertPurpose§from_seq: u64

The first chain_seq key signs

§prev_hash: Option<Sha256Hex>

The rotation entry’s own prev_hash, so a certificate is good at one position of one chain. null for CertPurpose::Genesis.

§last_trusted: Option<TrustedHead>

CertPurpose::Compromise only: the last entry trusted under the outgoing key. The root says where the window opens, not the online key that may be the thief’s.

Implementations§

Source§

impl KeyCertStatement

Source

pub fn genesis(key: PublicKeyHex) -> Self

key is the key the chain started under

Source

pub fn routine( key: PublicKeyHex, seq: u64, prev_hash: Option<Sha256Hex>, ) -> Self

key takes over after the routine rotation appended at seq, whose prev_hash is prev_hash

Source

pub fn compromise( key: PublicKeyHex, seq: u64, prev_hash: Option<Sha256Hex>, last_trusted: TrustedHead, ) -> Self

key signs the compromise declaration appended at seq and everything after it

Source

pub fn signed_bytes(&self) -> Vec<u8> ⓘ

The exact bytes a root key signs

Trait Implementations§

Source§

impl Clone for KeyCertStatement

Source§

fn clone(&self) -> KeyCertStatement

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for KeyCertStatement

Source§

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

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

impl<'de> Deserialize<'de> for KeyCertStatement

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for KeyCertStatement

Source§

impl PartialEq for KeyCertStatement

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for KeyCertStatement

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for KeyCertStatement

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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> PendingHandle for T
where T: Send + 'static,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V