Struct hpke_dispatch::Config
source · pub struct Config {
pub aead: Aead,
pub kdf: Kdf,
pub kem: Kem,
}
Expand description
Config is an open struct that contains an (Aead
, Kdf
, Kem
)
algorithmic triple. This can be used with Config::base_mode_seal
,
Config::base_mode_open
, [base_mode_seal
], or [base_mode_open
].
Fields§
§aead: Aead
§kdf: Kdf
the key derivation function to be used
kem: Kem
the asymmetric key encapsulation mechanism to be used
Implementations§
source§impl Config
impl Config
sourcepub fn base_mode_seal(
&self,
recipient_public_key: &[u8],
info: &[u8],
plaintext: &[u8],
aad: &[u8],
) -> Result<EncappedKeyAndCiphertext, HpkeError>
pub fn base_mode_seal( &self, recipient_public_key: &[u8], info: &[u8], plaintext: &[u8], aad: &[u8], ) -> Result<EncappedKeyAndCiphertext, HpkeError>
base_mode_seal provides an interface to hpke::single_shot_seal
that does
not require compile time selection of an algorithm. Instead, the
selected algorithm is provided through the Config
that this
method is called on.
Requires the base-mode-seal
crate feature to be enabled.
§Errors
This will return an Result::Err
variant if:
- we are unable to deserialize the recipient public key
- there is an error in key encapsultion
- there is an error in encryption
sourcepub fn base_mode_open(
&self,
private_key: &[u8],
encapped_key: &[u8],
info: &[u8],
ciphertext: &[u8],
aad: &[u8],
) -> Result<Vec<u8>, HpkeError>
pub fn base_mode_open( &self, private_key: &[u8], encapped_key: &[u8], info: &[u8], ciphertext: &[u8], aad: &[u8], ) -> Result<Vec<u8>, HpkeError>
base_mode_open provides an interface to hpke::single_shot_open
that does not require compile time selection of an
algorithm. Instead, the selected algorithm is provided through the
Config
that this method is called on.
Requires the base-mode-open
crate feature to be enabled.
§Errors
This will return an Result::Err
variant if:
- we are unable to deserialize the private key or encapsulated key
- there is an error in key decapsulation
- there is an error in decryption
sourcepub fn try_from_ids(
aead_id: u16,
kdf_id: u16,
kem_id: u16,
) -> Result<Config, IdLookupError>
pub fn try_from_ids( aead_id: u16, kdf_id: u16, kem_id: u16, ) -> Result<Config, IdLookupError>
Attempt to convert three u16 ids into a valid config. The id mappings are defined in the draft.
Trait Implementations§
source§impl PartialEq for Config
impl PartialEq for Config
impl Copy for Config
impl Eq for Config
impl StructuralPartialEq for Config
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)