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}