Enum KeyManagementAlgorithm

Source
pub enum KeyManagementAlgorithm {
Show 17 variants RSA1_5, RSA_OAEP, RSA_OAEP_256, A128KW, A192KW, A256KW, DirectSymmetricKey, ECDH_ES, ECDH_ES_A128KW, ECDH_ES_A192KW, ECDH_ES_A256KW, A128GCMKW, A192GCMKW, A256GCMKW, PBES2_HS256_A128KW, PBES2_HS384_A192KW, PBES2_HS512_A256KW,
}
Expand description

Algorithms for key management as defined in RFC7518#4

Variants§

§

RSA1_5

RSAES-PKCS1-v1_5

§

RSA_OAEP

RSAES OAEP using default parameters

§

RSA_OAEP_256

RSAES OAEP using SHA-256 and MGF1 with SHA-256

§

A128KW

AES Key Wrap using 128-bit key. Unsupported

§

A192KW

AES Key Wrap using 192-bit key. Unsupported. This is not supported by ring.

§

A256KW

AES Key Wrap using 256-bit key. Unsupported

§

DirectSymmetricKey

Direct use of a shared symmetric key

§

ECDH_ES

ECDH-ES using Concat KDF

§

ECDH_ES_A128KW

ECDH-ES using Concat KDF and “A128KW” wrapping

§

ECDH_ES_A192KW

ECDH-ES using Concat KDF and “A192KW” wrapping

§

ECDH_ES_A256KW

ECDH-ES using Concat KDF and “A256KW” wrapping

§

A128GCMKW

Key wrapping with AES GCM using 128-bit key alg

§

A192GCMKW

Key wrapping with AES GCM using 192-bit key alg. This is not supported by ring.

§

A256GCMKW

Key wrapping with AES GCM using 256-bit key alg

§

PBES2_HS256_A128KW

PBES2 with HMAC SHA-256 and “A128KW” wrapping

§

PBES2_HS384_A192KW

PBES2 with HMAC SHA-384 and “A192KW” wrapping

§

PBES2_HS512_A256KW

PBES2 with HMAC SHA-512 and “A256KW” wrapping

Implementations§

Source§

impl KeyManagementAlgorithm

Source

pub fn algorithm_type(self) -> KeyManagementAlgorithmType

Returns the type of operations that the algorithm is intended to support

Source

pub fn cek<T>( self, content_alg: ContentEncryptionAlgorithm, key: &JWK<T>, ) -> Result<JWK<Empty>, Error>

Return the Content Encryption Key (CEK) based on the key management algorithm

If the algorithm is dir or DirectSymmetricKey, the key provided is the CEK. Otherwise, the appropriate algorithm will be used to derive or generate the required CEK using the provided key.

Source

pub fn wrap_key<T>( self, payload: &[u8], key: &JWK<T>, options: &EncryptionOptions, ) -> Result<EncryptionResult, Error>

Encrypt or wrap a Content Encryption Key with the provided algorithm

Source

pub fn unwrap_key<T>( self, encrypted: &EncryptionResult, content_alg: ContentEncryptionAlgorithm, key: &JWK<T>, ) -> Result<JWK<Empty>, Error>

Decrypt or unwrap a CEK with the provided algorithm

Trait Implementations§

Source§

impl Clone for KeyManagementAlgorithm

Source§

fn clone(&self) -> KeyManagementAlgorithm

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 KeyManagementAlgorithm

Source§

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

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

impl Default for KeyManagementAlgorithm

Source§

fn default() -> KeyManagementAlgorithm

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

impl<'de> Deserialize<'de> for KeyManagementAlgorithm

Source§

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

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

impl PartialEq for KeyManagementAlgorithm

Source§

fn eq(&self, other: &KeyManagementAlgorithm) -> 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 KeyManagementAlgorithm

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 Copy for KeyManagementAlgorithm

Source§

impl Eq for KeyManagementAlgorithm

Source§

impl StructuralPartialEq for KeyManagementAlgorithm

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