aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/crypto/symm_internal.rs
blob: fcb3ee71df724ecb05237e48ced1a5d77f61e0a7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use crypto::symm;
use ffi;

pub fn evpc(t: symm::Type) -> (*const ffi::EVP_CIPHER, u32, u32) {
    unsafe {
        match t {
            symm::Type::AES_128_ECB => (ffi::EVP_aes_128_ecb(), 16, 16),
            symm::Type::AES_128_CBC => (ffi::EVP_aes_128_cbc(), 16, 16),
            #[cfg(feature = "aes_xts")]
            symm::Type::AES_128_XTS => (ffi::EVP_aes_128_xts(), 32, 16),
            #[cfg(feature = "aes_ctr")]
            symm::Type::AES_128_CTR => (ffi::EVP_aes_128_ctr(), 16, 0),
            //AES_128_GCM => (EVP_aes_128_gcm(), 16, 16),
            symm::Type::AES_128_CFB1 => (ffi::EVP_aes_128_cfb1(), 16, 16),
            symm::Type::AES_128_CFB128 => (ffi::EVP_aes_128_cfb128(), 16, 16),
            symm::Type::AES_128_CFB8 => (ffi::EVP_aes_128_cfb8(), 16, 16),

            symm::Type::AES_256_ECB => (ffi::EVP_aes_256_ecb(), 32, 16),
            symm::Type::AES_256_CBC => (ffi::EVP_aes_256_cbc(), 32, 16),
            #[cfg(feature = "aes_xts")]
            symm::Type::AES_256_XTS => (ffi::EVP_aes_256_xts(), 64, 16),
            #[cfg(feature = "aes_ctr")]
            symm::Type::AES_256_CTR => (ffi::EVP_aes_256_ctr(), 32, 0),
            //AES_256_GCM => (EVP_aes_256_gcm(), 32, 16),
            symm::Type::AES_256_CFB1 => (ffi::EVP_aes_256_cfb1(), 32, 16),
            symm::Type::AES_256_CFB128 => (ffi::EVP_aes_256_cfb128(), 32, 16),
            symm::Type::AES_256_CFB8 => (ffi::EVP_aes_256_cfb8(), 32, 16),

            symm::Type::RC4_128 => (ffi::EVP_rc4(), 16, 0),
        }
    }
}