pub struct SignedSpoolOwnerGenesis {
pub genesis: Option<SpoolOwnerGenesis>,
pub owner_signature: Option<AuthorizationSignature>,
pub delegated_creation: Option<SpoolCreationProof>,
}Expand description
Self-signed genesis evidence. owner_signature.signer_key_id MUST identify genesis.owner_public_key, and that key signs the exact 32-byte digest:
SHA-256(genesis.owner_public_key.public_key || genesis.spool_uuid)
A cloner verifies this proof and TOFU-pins spool_uuid -> owner_public_key before accepting the state tree. The owner’s signed root and complete accepted rotation history must prove that this key belonged to that owner. New spools use the current key at admission. Later rotation preserves the immutable genesis; historical membership never authorizes a retired key to issue a new capability.
Fields§
§genesis: Option<SpoolOwnerGenesis>§owner_signature: Option<AuthorizationSignature>§delegated_creation: Option<SpoolCreationProof>Exactly one of owner_signature or delegated_creation is present.
Trait Implementations§
Source§impl Clone for SignedSpoolOwnerGenesis
impl Clone for SignedSpoolOwnerGenesis
Source§fn clone(&self) -> SignedSpoolOwnerGenesis
fn clone(&self) -> SignedSpoolOwnerGenesis
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SignedSpoolOwnerGenesis
impl Debug for SignedSpoolOwnerGenesis
Source§impl Default for SignedSpoolOwnerGenesis
impl Default for SignedSpoolOwnerGenesis
Source§fn default() -> SignedSpoolOwnerGenesis
fn default() -> SignedSpoolOwnerGenesis
Returns the “default value” for a type. Read more
Source§impl Message for SignedSpoolOwnerGenesis
impl Message for SignedSpoolOwnerGenesis
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message to a buffer. Read more
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message to a newly allocated buffer.
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message with a length-delimiter to a buffer. Read more
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message with a length-delimiter to a newly allocated buffer.
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes an instance of the message from a buffer. Read more
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes a length-delimited instance of the message from the buffer.
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes an instance of the message from a buffer, and merges it into
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes a length-delimited instance of the message from buffer, and
merges it into
self.Source§impl PartialEq for SignedSpoolOwnerGenesis
impl PartialEq for SignedSpoolOwnerGenesis
impl StructuralPartialEq for SignedSpoolOwnerGenesis
Auto Trait Implementations§
impl Freeze for SignedSpoolOwnerGenesis
impl RefUnwindSafe for SignedSpoolOwnerGenesis
impl Send for SignedSpoolOwnerGenesis
impl Sync for SignedSpoolOwnerGenesis
impl Unpin for SignedSpoolOwnerGenesis
impl UnsafeUnpin for SignedSpoolOwnerGenesis
impl UnwindSafe for SignedSpoolOwnerGenesis
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more