pub struct ThreadControlAuthority {
pub format: u32,
pub owner: Option<OwnerHistory>,
pub mint_root_public_key: Vec<u8>,
pub sealed_biscuit: Vec<u8>,
pub mint_root_association: Option<MintRootAssociation>,
}Expand description
Original author evidence bound into each signed Thread metadata operation. Supplied history never establishes trust: receivers verify against separately admitted author/actor account authority at first durable admission, resolved independently of Spool governance. Durable device certificates survive an ordinary owner Rotate without recertification: match the exact retained host-admitted (or P1/P2/P4 witness-attested) attachment and a historical issuer with no Recover since. See native-host-witness.md for inventory provenance. Canonical protobuf encoding is mandatory and the entire envelope is bounded to 64 KiB.
Fields§
§format: u32Must be 1.
owner: Option<OwnerHistory>§mint_root_public_key: Vec<u8>Ed25519, exactly 32 bytes.
sealed_biscuit: Vec<u8>Sealed Biscuit only: never publish an appendable credential’s proof secret.
mint_root_association: Option<MintRootAssociation>Durable owner-signed roots and temporary passkey roots are deliberately distinct proof shapes; verifiers never reinterpret one as the other. A verifier MUST scan the raw message before protobuf decoding and reject an encoding containing both tags 4 and 6; oneof last-wins decoding is unsafe.
Trait Implementations§
Source§impl Clone for ThreadControlAuthority
impl Clone for ThreadControlAuthority
Source§fn clone(&self) -> ThreadControlAuthority
fn clone(&self) -> ThreadControlAuthority
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ThreadControlAuthority
impl Debug for ThreadControlAuthority
Source§impl Default for ThreadControlAuthority
impl Default for ThreadControlAuthority
Source§fn default() -> ThreadControlAuthority
fn default() -> ThreadControlAuthority
Source§impl Message for ThreadControlAuthority
impl Message for ThreadControlAuthority
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
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,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
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,
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,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
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,
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,
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,
self.Source§impl PartialEq for ThreadControlAuthority
impl PartialEq for ThreadControlAuthority
impl StructuralPartialEq for ThreadControlAuthority
Auto Trait Implementations§
impl Freeze for ThreadControlAuthority
impl RefUnwindSafe for ThreadControlAuthority
impl Send for ThreadControlAuthority
impl Sync for ThreadControlAuthority
impl Unpin for ThreadControlAuthority
impl UnsafeUnpin for ThreadControlAuthority
impl UnwindSafe for ThreadControlAuthority
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
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> ⓘ
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> ⓘ
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