Commit 3cab63cd authored by Alex Gaynor's avatar Alex Gaynor
Browse files

Expose a few more (bad) ciphers in symm::Cipher

parent 1ec2b3af
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -312,7 +312,10 @@ extern "C" {
    pub fn EVP_des_ecb() -> *const EVP_CIPHER;
    pub fn EVP_des_ede3() -> *const EVP_CIPHER;
    pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER;
    pub fn EVP_des_ede3_ecb() -> *const EVP_CIPHER;
    pub fn EVP_des_ede3_cfb64() -> *const EVP_CIPHER;
    pub fn EVP_des_ede3_cfb8() -> *const EVP_CIPHER;
    pub fn EVP_des_ede3_ofb() -> *const EVP_CIPHER;
    pub fn EVP_des_cbc() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_RC4"))]
    pub fn EVP_rc4() -> *const EVP_CIPHER;
@@ -398,17 +401,23 @@ extern "C" {
    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn EVP_camellia_128_cbc() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn EVP_camellia_128_ofb() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn EVP_camellia_192_cfb128() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn EVP_camellia_192_ecb() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn EVP_camellia_192_cbc() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn EVP_camellia_192_ofb() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn EVP_camellia_256_cfb128() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn EVP_camellia_256_ecb() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn EVP_camellia_256_cbc() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn EVP_camellia_256_ofb() -> *const EVP_CIPHER;

    #[cfg(not(osslconf = "OPENSSL_NO_CAST"))]
    pub fn EVP_cast5_cfb64() -> *const EVP_CIPHER;
@@ -416,6 +425,8 @@ extern "C" {
    pub fn EVP_cast5_ecb() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAST"))]
    pub fn EVP_cast5_cbc() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_CAST"))]
    pub fn EVP_cast5_ofb() -> *const EVP_CIPHER;

    #[cfg(not(osslconf = "OPENSSL_NO_IDEA"))]
    pub fn EVP_idea_cfb64() -> *const EVP_CIPHER;
@@ -423,6 +434,8 @@ extern "C" {
    pub fn EVP_idea_ecb() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_IDEA"))]
    pub fn EVP_idea_cbc() -> *const EVP_CIPHER;
    #[cfg(not(osslconf = "OPENSSL_NO_IDEA"))]
    pub fn EVP_idea_ofb() -> *const EVP_CIPHER;

    #[cfg(not(ossl110))]
    pub fn OPENSSL_add_all_algorithms_noconf();
+89 −0
Original line number Diff line number Diff line
@@ -278,11 +278,25 @@ impl Cipher {
        unsafe { Cipher(ffi::EVP_des_ede3_cbc()) }
    }

    pub fn des_ede3_ecb() -> Cipher {
        unsafe { Cipher(ffi::EVP_des_ede3_ecb()) }
    }

    #[cfg(not(boringssl))]
    pub fn des_ede3_cfb64() -> Cipher {
        unsafe { Cipher(ffi::EVP_des_ede3_cfb64()) }
    }

    #[cfg(not(boringssl))]
    pub fn des_ede3_cfb8() -> Cipher {
        unsafe { Cipher(ffi::EVP_des_ede3_cfb8()) }
    }

    #[cfg(not(boringssl))]
    pub fn des_ede3_ofb() -> Cipher {
        unsafe { Cipher(ffi::EVP_des_ede3_ofb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_RC4"))]
    pub fn rc4() -> Cipher {
        unsafe { Cipher(ffi::EVP_rc4()) }
@@ -293,21 +307,81 @@ impl Cipher {
        unsafe { Cipher(ffi::EVP_camellia_128_cbc()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_128_ecb() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_128_ecb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_128_ofb() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_128_ofb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_128_cfb128() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_128_cfb128()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_192_cbc() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_192_cbc()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_192_ecb() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_192_ecb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_192_ofb() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_192_ofb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_192_cfb128() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_192_cfb128()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_256_cbc() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_256_cbc()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_256_ecb() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_256_ecb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_256_ofb() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_256_ofb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAMELLIA"))]
    pub fn camellia_256_cfb128() -> Cipher {
        unsafe { Cipher(ffi::EVP_camellia_256_cfb128()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAST"))]
    pub fn cast5_cbc() -> Cipher {
        unsafe { Cipher(ffi::EVP_cast5_cbc()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAST"))]
    pub fn cast5_ecb() -> Cipher {
        unsafe { Cipher(ffi::EVP_cast5_ecb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAST"))]
    pub fn cast5_ofb() -> Cipher {
        unsafe { Cipher(ffi::EVP_cast5_ofb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_CAST"))]
    pub fn cast5_cfb64() -> Cipher {
        unsafe { Cipher(ffi::EVP_cast5_cfb64()) }
    }

    /// Requires OpenSSL 1.1.0 or newer.
    #[cfg(all(ossl110, not(osslconf = "OPENSSL_NO_CHACHA")))]
    pub fn chacha20() -> Cipher {
@@ -325,6 +399,21 @@ impl Cipher {
        unsafe { Cipher(ffi::EVP_idea_cbc()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_IDEA"))]
    pub fn idea_ecb() -> Cipher {
        unsafe { Cipher(ffi::EVP_idea_ecb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_IDEA"))]
    pub fn idea_ofb() -> Cipher {
        unsafe { Cipher(ffi::EVP_idea_ofb()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_IDEA"))]
    pub fn idea_cfb64() -> Cipher {
        unsafe { Cipher(ffi::EVP_idea_cfb64()) }
    }

    #[cfg(not(osslconf = "OPENSSL_NO_SEED"))]
    pub fn seed_cbc() -> Cipher {
        unsafe { Cipher(ffi::EVP_seed_cbc()) }