pub struct OwnerKeyBinding {
pub format_version: u32,
pub stable_owner_uuid: Vec<u8>,
pub root_public_key: Option<AuthorizationVerificationKey>,
pub root_state_hash: Vec<u8>,
pub kind: i32,
pub binding_epoch: u64,
pub challenge_nonce: Vec<u8>,
pub root_proof_of_possession: Option<AuthorizationSignature>,
}Expand description
Self-asserted attachment of a root key to the stable owner UUID.
stable_owner_uuid is exactly 16 bytes and never changes. challenge_nonce
is exactly 32 bytes, single-use, and scoped by the service to the authenticated
principal and UUID. binding_epoch begins at one and increases monotonically.
root_proof_of_possession signs: SHA-256(“heddle-owner-key-binding-v1” || canonical_owner_key_binding_v1_without_proofs)
There is deliberately no registry attestation or independent release root. The owner proves possession of its own root; spool consumers establish trust from SignedSpoolOwnerGenesis and TOFU-pin that binding.
Fields§
§format_version: u32Exactly 1.
stable_owner_uuid: Vec<u8>§root_public_key: Option<AuthorizationVerificationKey>§root_state_hash: Vec<u8>§kind: i32§binding_epoch: u64§challenge_nonce: Vec<u8>§root_proof_of_possession: Option<AuthorizationSignature>Implementations§
Source§impl OwnerKeyBinding
impl OwnerKeyBinding
Sourcepub fn kind(&self) -> OwnerKeyBindingKind
pub fn kind(&self) -> OwnerKeyBindingKind
Returns the enum value of kind, or the default if the field is set to an invalid enum value.
Sourcepub fn set_kind(&mut self, value: OwnerKeyBindingKind)
pub fn set_kind(&mut self, value: OwnerKeyBindingKind)
Sets kind to the provided enum value.
Trait Implementations§
Source§impl Clone for OwnerKeyBinding
impl Clone for OwnerKeyBinding
Source§fn clone(&self) -> OwnerKeyBinding
fn clone(&self) -> OwnerKeyBinding
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 OwnerKeyBinding
impl Debug for OwnerKeyBinding
Source§impl Default for OwnerKeyBinding
impl Default for OwnerKeyBinding
Source§fn default() -> OwnerKeyBinding
fn default() -> OwnerKeyBinding
impl Eq for OwnerKeyBinding
Source§impl Hash for OwnerKeyBinding
impl Hash for OwnerKeyBinding
Source§impl Message for OwnerKeyBinding
impl Message for OwnerKeyBinding
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 OwnerKeyBinding
impl PartialEq for OwnerKeyBinding
impl StructuralPartialEq for OwnerKeyBinding
Auto Trait Implementations§
impl Freeze for OwnerKeyBinding
impl RefUnwindSafe for OwnerKeyBinding
impl Send for OwnerKeyBinding
impl Sync for OwnerKeyBinding
impl Unpin for OwnerKeyBinding
impl UnsafeUnpin for OwnerKeyBinding
impl UnwindSafe for OwnerKeyBinding
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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