burrito_secrets/
encryption.rs

1/*
2 * Copyright (c) 2024.
3 *
4 * Licensed under the MIT license <http://opensource.org/licenses/MIT>.
5 */
6use 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}