PrimitiveSet

Struct PrimitiveSet 

Source
pub struct PrimitiveSet {
    pub primary: Option<Entry>,
    pub entries: HashMap<Vec<u8>, Vec<Entry>>,
}
Expand description

PrimitiveSet is used for supporting key rotation: primitives in a set correspond to keys in a keyset.

Users will usually work with primitive instances, which essentially wrap primitive sets. For example an instance of an AEAD-primitive for a given keyset holds a set of AEAD-primitives corresponding to the keys in the keyset, and uses the set members to do the actual crypto operations: to encrypt data the primary AEAD-primitive from the set is used, and upon decryption the ciphertext’s prefix determines the id of the primitive from the set.

PrimitiveSet is public to allow its use in implementations of custom primitives.

Fields§

§primary: Option<Entry>§entries: HashMap<Vec<u8>, Vec<Entry>>

Implementations§

Source§

impl PrimitiveSet

Source

pub fn new() -> Self

Return an empty instance of PrimitiveSet.

Source

pub fn raw_entries(&self) -> Vec<Entry>

Return all primitives in the set that have RAW prefix.

Source

pub fn entries_for_prefix(&self, prefix: &[u8]) -> Vec<Entry>

Return all primitives in the set that have the given prefix.

Source

pub fn add(&mut self, p: Primitive, key: &Key) -> Result<Entry, TinkError>

Create a new entry in the primitive set and returns a copy of the added entry.

Trait Implementations§

Source§

impl Clone for PrimitiveSet

Source§

fn clone(&self) -> PrimitiveSet

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 Default for PrimitiveSet

Source§

fn default() -> PrimitiveSet

Returns the “default value” for a type. Read more
Source§

impl<P: From<Primitive>> From<PrimitiveSet> for TypedPrimitiveSet<P>

Convert an untyped PrimitiveSet into a TypedPrimitiveSet. This will panic if any of the primitives are not of the correct type.

Source§

fn from(ps: PrimitiveSet) -> Self

Converts to this type from the input type.

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<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> 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V