Skip to main content

Encryption

Trait Encryption 

Source
pub trait Encryption {
    type Cipher: Aead + AeadCore + KeyInit + KeySizeUser;
    type Scheme: Encoder + Decoder;

    // Provided methods
    fn encode<Data>(data: &Encrypted<Data>) -> Result<Vec<u8>, Box<dyn Error>> { ... }
    fn decode<Data>(data: &[u8]) -> Result<Encrypted<Data>, Box<dyn Error>> { ... }
    fn extract<'de, Data: Deserialize<'de> + Zeroize>(
        decrypted: &'de Decrypted<Data>,
    ) -> Result<Secret<Data>, Box<dyn Error>> { ... }
    fn extract_exposed<'de, Data: Deserialize<'de>>(
        decrypted: &'de DecryptedExposed<Data>,
    ) -> Result<Data, Box<dyn Error>> { ... }
    fn encrypt<Data: Serialize>(
        data: &Data,
        key: &Key<Self::Cipher>,
    ) -> Result<Encrypted<Data>, Box<dyn Error>> { ... }
    fn decrypt<Data>(
        encrypted: &Encrypted<Data>,
        key: &GenericArray<u8, <Self::Cipher as KeySizeUser>::KeySize>,
    ) -> Result<Decrypted<Data>, Box<dyn Error>> { ... }
    fn decrypt_exposed<Data>(
        encrypted: &Encrypted<Data>,
        key: &GenericArray<u8, <Self::Cipher as KeySizeUser>::KeySize>,
    ) -> Result<DecryptedExposed<Data>, Box<dyn Error>> { ... }
}
Expand description

general trait for encrypting serializable data

Required Associated Types§

Provided Methods§

Source

fn encode<Data>(data: &Encrypted<Data>) -> Result<Vec<u8>, Box<dyn Error>>

Source

fn decode<Data>(data: &[u8]) -> Result<Encrypted<Data>, Box<dyn Error>>

Source

fn extract<'de, Data: Deserialize<'de> + Zeroize>( decrypted: &'de Decrypted<Data>, ) -> Result<Secret<Data>, Box<dyn Error>>

Source

fn extract_exposed<'de, Data: Deserialize<'de>>( decrypted: &'de DecryptedExposed<Data>, ) -> Result<Data, Box<dyn Error>>

Source

fn encrypt<Data: Serialize>( data: &Data, key: &Key<Self::Cipher>, ) -> Result<Encrypted<Data>, Box<dyn Error>>

convert the data to it’s serialized form and then encypt it using [Cipher]

Source

fn decrypt<Data>( encrypted: &Encrypted<Data>, key: &GenericArray<u8, <Self::Cipher as KeySizeUser>::KeySize>, ) -> Result<Decrypted<Data>, Box<dyn Error>>

decrypt the data to it’s serialized form, pre-emptively wraps data in a Secret

Source

fn decrypt_exposed<Data>( encrypted: &Encrypted<Data>, key: &GenericArray<u8, <Self::Cipher as KeySizeUser>::KeySize>, ) -> Result<DecryptedExposed<Data>, Box<dyn Error>>

decrypt the data to it’s serialized form

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§