ZoneKey

Struct ZoneKey 

Source
pub struct ZoneKey { /* private fields */ }
Expand description

A zone signing key: an Ed25519 key bound to its self-certifying zone root name.

The zone root is computed deterministically from the public key, so this struct owns both the signing capability and the canonical zone namespace.

Implementations§

Source§

impl ZoneKey

Source

pub fn from_seed(seed: &[u8; 32]) -> Self

Derive a ZoneKey from a raw 32-byte Ed25519 seed.

The zone root name is computed as blake3(verifying_key_bytes).

Source

pub fn from_signing_key_bytes(bytes: &[u8; 32]) -> Self

Derive a ZoneKey from raw Ed25519 signing-key bytes (32-byte seed).

Source

pub fn zone_root_name(&self) -> &Name

The self-certifying zone root name derived from this key.

This is a single-component name containing the BLAKE3 digest of the Ed25519 verifying key bytes.

Source

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

The raw 32-byte Ed25519 verifying (public) key.

Source

pub fn signer(&self) -> &Ed25519Signer

The signer — can be used with DataBuilder::sign() or SignWith.

Source

pub fn into_arc_signer(self) -> Arc<dyn Signer>

Returns an Arc<dyn Signer> suitable for storage in a KeyStore.

Source

pub fn child_name(&self, suffix: &str) -> Result<Name, PacketError>

Derive a child name under this zone root.

Example: if zone root is /[blake3:abcd…], then zone.child_name("/sensor/temp") returns /[blake3:abcd…]/sensor/temp.

Source

pub fn zone_root_did(&self) -> String

The did:ndn DID string for this zone root.

Returns did:ndn:<base64url(Name-TLV)> — the unified binary encoding.

Source

pub fn is_zone_child(&self, name: &Name) -> bool

Verify that a name is a direct child of this zone (has zone root as prefix).

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

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = Infallible

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

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

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

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

§

fn vzip(self) -> V