cas_lib/symmetric/
cas_symmetric_encryption.rs1pub trait CASAES256Encryption {
2 fn generate_key() -> Vec<u8>;
3 fn encrypt_plaintext(aes_key: Vec<u8>, nonce: Vec<u8>, plaintext: Vec<u8>) -> Vec<u8>;
4 fn decrypt_ciphertext(aes_key: Vec<u8>, nonce: Vec<u8>, ciphertext: Vec<u8>) -> Vec<u8>;
5 fn key_from_x25519_shared_secret(shared_secret: Vec<u8>) -> Vec<u8>;
6 fn generate_nonce() -> Vec<u8>;
7 fn key_from_vec(key_slice: Vec<u8>) -> Vec<u8>;
8}
9
10pub trait CASAES128Encryption {
11 fn generate_key() -> Vec<u8>;
12 fn encrypt_plaintext(aes_key: Vec<u8>, nonce: Vec<u8>, plaintext: Vec<u8>) -> Vec<u8>;
13 fn decrypt_ciphertext(aes_key: Vec<u8>, nonce: Vec<u8>, ciphertext: Vec<u8>) -> Vec<u8>;
14 fn key_from_x25519_shared_secret(shared_secret: Vec<u8>) -> Vec<u8>;
15 fn generate_nonce() -> Vec<u8>;
16 fn key_from_vec(key_slice: Vec<u8>) -> Vec<u8>;
17}
18
19pub trait Chacha20Poly1305Encryption {
20 fn generate_key() -> Vec<u8>;
21 fn encrypt_plaintext(aes_key: Vec<u8>, nonce: Vec<u8>, plaintext: Vec<u8>) -> Vec<u8>;
22 fn decrypt_ciphertext(aes_key: Vec<u8>, nonce: Vec<u8>, ciphertext: Vec<u8>) -> Vec<u8>;
23 fn generate_nonce() -> Vec<u8>;
24}