cas_lib/symmetric/
cas_symmetric_encryption.rs

1pub 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}