burrito_secrets/
encryption.rs1use dryoc::dryocbox::protected::{PublicKey, SecretKey};
7use crate::database::Entry;
8use crate::waiters::Waiter;
9
10pub trait EncryptionWaiter: Waiter {
11 fn encrypt(entry: Entry, key: PublicKey) -> anyhow::Result<Self>;
12 fn decrypt(self, key: SecretKey) -> anyhow::Result<Entry>;
13}
14
15pub trait EncryptionWaiterSymmetric: Waiter {
16 fn encrypt_sym(entry: Entry, key: SecretKey) -> anyhow::Result<Self>;
17 fn decrypt_sym(self, key: SecretKey) -> anyhow::Result<Entry>;
18}
19
20pub trait KeyFrom: Waiter {
21 fn key_from(&self, data: Vec<u8>) -> anyhow::Result<SecretKey>;
22}