[][src]Struct safe_crypto::SymmetricKey

pub struct SymmetricKey { /* fields omitted */ }

Secret key for authenticated symmetric encryption.

Methods

impl SymmetricKey[src]

pub fn new() -> Self[src]

Generates a new symmetric key.

pub fn from_bytes(key: [u8; 32]) -> Self[src]

Create a symmetric key from bytes. Useful when it has been serialised.

pub fn into_bytes(self) -> [u8; 32][src]

Convert the SharedSecretKey into the raw underlying bytes. For anyone who wants to store the symmetric key

pub fn encrypt<T: Serialize>(&self, plaintext: &T) -> Result<Vec<u8>, Error>[src]

Encrypts serialisable plaintext using authenticated symmetric encryption.

With authenticated encryption the recipient will be able to confirm that the message is untampered with. If you wish to encrypt bytestring plaintext, use encrypt_bytes.

Returns ciphertext in case of success. Can return an Error in case of a serialisation error.

pub fn encrypt_with_nonce<T: Serialize>(
    &self,
    plaintext: &T,
    nonce: &Nonce
) -> Result<Vec<u8>, Error>
[src]

Encrypts serialisable plaintext using authenticated symmetric encryption, with a nonce.

See encrypt.

pub fn encrypt_bytes_with_nonce(
    &self,
    plaintext: &[u8],
    nonce: &Nonce
) -> Result<Vec<u8>, Error>
[src]

Encrypts bytestring plaintext using authenticated symmetric encryption, with a nonce.

See encrypt_bytes.

pub fn encrypt_bytes(&self, plaintext: &[u8]) -> Result<Vec<u8>, Error>[src]

Encrypts bytestring plaintext using authenticated symmetric encryption.

With authenticated encryption the recipient will be able to confirm that the message is untampered with.

Returns ciphertext in case of success. Can return an Error in case of a serialisation error.

pub fn decrypt<T>(&self, ciphertext: &[u8]) -> Result<T, Error> where
    T: DeserializeOwned + Serialize
[src]

Decrypts serialised ciphertext encrypted using authenticated symmetric encryption.

With authenticated encryption we will be able to tell that the message hasn't been tampered with.

Returns deserialised type T in case of success. Can return Error in case of a deserialisation error, if the ciphertext is not valid, or if it can not be decrypted.

pub fn decrypt_bytes(&self, ciphertext: &[u8]) -> Result<Vec<u8>, Error>[src]

Decrypts bytestring ciphertext encrypted using authenticated symmetric encryption.

With authenticated encryption we will be able to tell that the message hasn't been tampered with.

Returns plaintext in case of success. Can return Error in case of a deserialisation error, if the ciphertext is not valid, or if it can not be decrypted.

Trait Implementations

impl Eq for SymmetricKey[src]

impl Default for SymmetricKey[src]

impl Clone for SymmetricKey[src]

impl PartialEq<SymmetricKey> for SymmetricKey[src]

impl Debug for SymmetricKey[src]

impl Serialize for SymmetricKey[src]

impl<'de> Deserialize<'de> for SymmetricKey[src]

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> DebugAny for T where
    T: Any + Debug

impl<T> CloneAny for T where
    T: Clone + Any

impl<T> UnsafeAny for T where
    T: Any