Skip to content

Commit

Permalink
Expose a few more (bad) ciphers in symm::Cipher
Browse files Browse the repository at this point in the history
  • Loading branch information
alex committed Nov 4, 2023
1 parent 1ec2b3a commit 9bd9547
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
11 changes: 11 additions & 0 deletions openssl-sys/src/handwritten/evp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -398,24 +401,32 @@ 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;
#[cfg(not(osslconf = "OPENSSL_NO_CAST"))]
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;
Expand Down
74 changes: 74 additions & 0 deletions openssl/src/symm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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()) }
Expand All @@ -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 {
Expand Down

0 comments on commit 9bd9547

Please sign in to comment.