bc_components/encrypted_key/key_derivation.rs
1use dcbor::prelude::*;
2
3use crate::{EncryptedMessage, Result, SymmetricKey};
4
5/// Trait for key derivation implementations.
6pub trait KeyDerivation: CBORCodable {
7 const INDEX: usize;
8
9 fn lock(
10 &mut self,
11 content_key: &SymmetricKey,
12 secret: impl AsRef<[u8]>,
13 ) -> Result<EncryptedMessage>;
14
15 fn unlock(
16 &self,
17 encrypted_message: &EncryptedMessage,
18 secret: impl AsRef<[u8]>,
19 ) -> Result<SymmetricKey>;
20}