Skip to main content

CanisterMasterKey

Struct CanisterMasterKey 

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

The canister’s master public key of a threshold signature system

Each canister gets its own canister master key, which is derived from the system master key.

Implementations§

Source§

impl CanisterMasterKey

Source

pub fn derive_key_with_context(&self, context: &[u8]) -> DerivedPublicKey

Derive the public key from a canister key and a single contextual input

VetKeys requires exactly one contextual input be supplied. In addition, if that contextual input is the empty bytestring then the “derived key” is identical to the canister master public key. This matches the behavior of the management canister interface.

For other keys, which support a path of inputs, this is equivalent to deriving using a path of length 1

Source

pub fn derive_key(&self, path: &[Vec<u8>]) -> Result<DerivedPublicKey, Error>

Derive a public key using a path of contextual inputs

Note that VetKD does not support derivation paths, but only a single context string, so VetKD is not supported by this function.

Source

pub fn serialize(&self) -> Vec<u8>

Return the serialized encoding of the canister master public key

Source

pub fn chain_code(&self) -> Option<Vec<u8>>

Return the chain code used for further derivation, if relevant

Returns None if not applicable for this algorithm

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.

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

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

Source§

fn vzip(self) -> V