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.