Module openssl::symm [] [src]

High level interface to certain symmetric ciphers.

Examples

Encrypt data in AES128 CBC mode

use openssl::symm::{encrypt, Cipher};

let cipher = Cipher::aes_128_cbc();
let data = b"Some Crypto Text";
let key = b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F";
let iv = b"\x00\x01\x02\x03\x04\x05\x06\x07\x00\x01\x02\x03\x04\x05\x06\x07";
let ciphertext = encrypt(
    cipher,
    key,
    Some(iv),
    data).unwrap();

assert_eq!(
    b"\xB4\xB9\xE7\x30\xD6\xD6\xF7\xDE\x77\x3F\x1C\xFF\xB3\x3E\x44\x5A\x91\xD7\x27\x62\x87\x4D\
      \xFB\x3C\x5E\xC4\x59\x72\x4A\xF4\x7C\xA1",
    &ciphertext[..]);

Structs

Cipher

Represents a particular cipher algorithm.

Crypter

Represents a symmetric cipher context.

Enums

Mode

Functions

decrypt

Decrypts data in one go, and returns the decrypted data.

decrypt_aead

Like decrypt, but for AEAD ciphers such as AES GCM.

encrypt

Encrypts data in one go, and returns the encrypted data.

encrypt_aead

Like encrypt, but for AEAD ciphers such as AES GCM.