Skip to main content

KeyDerivationMethod

Struct KeyDerivationMethod 

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

Parsed XML key-derivation parameters, without private key material.

Parsing does not grant permission to derive a key. The enclosing operation must validate its compiled policy, reserve work and gate provider execution.

Implementations§

Source§

impl KeyDerivationMethod

Source

pub fn to_xml(&self, resources: &ResourcePolicy) -> Result<String, XmlEncError>

Serialize public KDF parameters without secret key material. The exact escaped output length is checked before allocating the output buffer. Field boundaries and significant ConcatKDF bits survive transport.

Source

pub fn derive_key( &self, output_len: usize, provider: &dyn CryptoProvider, secret: &[u8], budget: &mut KeyEstablishmentBudget<'_>, ) -> Result<Zeroizing<Vec<u8>>, XmlEncError>

Execute parsed parameters under the enclosing operation’s shared allowance. Explicit XML KeyLength must match the consuming cipher.

Source

pub fn concat_field_bits( &self, field: ConcatKdfField, ) -> Option<impl Iterator<Item = bool> + '_>

Borrow one original ConcatKDF field as significant bits, without copying its bytes. None distinguishes omission from an explicitly empty field.

XMLEnc 1.1 section 5.4.1 requires application-specific validation of the algorithm and party identities. Combining OtherInfo must not erase the boundaries needed for that check.

Source

pub fn parameters( &self, output_len: usize, ) -> Result<KdfParameters<'_>, XmlEncError>

Bind the requested key width supplied by EncryptionMethod. An explicit XML KeyLength must agree; it is not an override of the consuming cipher.

Trait Implementations§

Source§

impl Clone for KeyDerivationMethod

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for KeyDerivationMethod

Source§

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

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

impl Eq for KeyDerivationMethod

Source§

impl PartialEq for KeyDerivationMethod

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for KeyDerivationMethod

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.