pub struct Config {
pub aead: Aead,
pub kdf: Kdf,
pub kem: Kem,
}Expand description
Configuration for crate interfaces.
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: Kdfthe key derivation function to be used
kem: Kemthe 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>
Single-shot HPKE ciphertext sealing.
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 receiver.
§Errors
This will return a 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>
Single-shot HPKE ciphertext opening.
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 receiver
§Errors
This will return a 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 IANA HPKE registries.