Skip to main content

SecureStorageLocation

Struct SecureStorageLocation 

Source
pub struct SecureStorageLocation {
    pub namespace: String,
    pub key: String,
    pub sub_key: Option<String>,
}
Expand description

Location within secure storage

Fields§

§namespace: String

Namespace for organizing secure data

§key: String

Unique key within the namespace

§sub_key: Option<String>

Optional sub-key for hierarchical organization

Implementations§

Source§

impl SecureStorageLocation

Source

pub fn new( namespace: impl Into<String>, key: impl Into<String>, ) -> SecureStorageLocation

Create a new secure storage location

Source

pub fn with_sub_key( namespace: impl Into<String>, key: impl Into<String>, sub_key: impl Into<String>, ) -> SecureStorageLocation

Create with a sub-key for hierarchical organization

Source

pub fn full_path(&self) -> String

Get the full key path as a string

Source

pub fn guardian_share( account_authority: &AuthorityId, guardian_authority: &AuthorityId, ) -> SecureStorageLocation

Create a location for storing a guardian’s FROST share.

Guardian shares are stored by:

  • namespace: “guardian_shares”
  • key: account authority being protected
  • sub_key: guardian authority holding the share
§Security Note

Guardian shares MUST be encrypted with the guardian’s public key before storage. The share data stored here is the encrypted share bytes, not the raw FROST SigningShare.

Source

pub fn authority_keys( authority: &AuthorityId, epoch: u64, ) -> SecureStorageLocation

Create a location for storing authority FROST keys.

Authority keys are stored by:

  • namespace: “authority_keys”
  • key: authority ID
  • sub_key: epoch number
§Security Note

This stores the SigningShare and PublicKeyPackage for the authority. The SigningShare is the secret key material that must never leave secure storage unencrypted.

Source§

impl SecureStorageLocation

Helper functions for common secure storage operations

Source

pub fn frost_nonce( session_id: &str, participant_id: u16, ) -> SecureStorageLocation

Create a location for storing FROST nonces

Source

pub fn signing_share( account_id: &str, epoch: u64, participant_id: u16, ) -> SecureStorageLocation

Create a location for storing signing shares

Source

pub fn device_attestation(device_id: &str) -> SecureStorageLocation

Create a location for device attestation certificates

Source

pub fn biscuit_authority(authority_id: &AuthorityId) -> SecureStorageLocation

Create a location for storing Biscuit token authority data.

Stores the serialized Biscuit token and root public key for an authority:

  • namespace: “biscuit”
  • key: authority ID
  • sub_key: “token_authority”
Source

pub fn amp_bootstrap_key( context: &ContextId, channel: &ChannelId, bootstrap_id: &Hash32, ) -> SecureStorageLocation

Create a location for AMP channel bootstrap keys.

Trait Implementations§

Source§

impl Clone for SecureStorageLocation

Source§

fn clone(&self) -> SecureStorageLocation

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SecureStorageLocation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for SecureStorageLocation

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<SecureStorageLocation, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Hash for SecureStorageLocation

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for SecureStorageLocation

Source§

fn eq(&self, other: &SecureStorageLocation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for SecureStorageLocation

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for SecureStorageLocation

Source§

impl StructuralPartialEq for SecureStorageLocation

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,