pub struct Cipher(/* private fields */);
Expand description
A symmetric cipher.
Implementations§
source§impl Cipher
impl Cipher
sourcepub fn from_nid(nid: Nid) -> Option<&'static CipherRef>
pub fn from_nid(nid: Nid) -> Option<&'static CipherRef>
Looks up the cipher for a certain nid.
This corresponds to EVP_get_cipherbynid
.
sourcepub fn fetch(
ctx: Option<&LibCtxRef>,
algorithm: &str,
properties: Option<&str>,
) -> Result<Self, ErrorStack>
pub fn fetch( ctx: Option<&LibCtxRef>, algorithm: &str, properties: Option<&str>, ) -> Result<Self, ErrorStack>
Fetches a cipher object corresponding to the specified algorithm name and properties.
Requires OpenSSL 3.0.0 or newer.
This corresponds to EVP_CIPHER_fetch
.
pub fn aes_128_ecb() -> &'static CipherRef
pub fn aes_128_cbc() -> &'static CipherRef
pub fn aes_128_xts() -> &'static CipherRef
pub fn aes_256_xts() -> &'static CipherRef
pub fn aes_128_ctr() -> &'static CipherRef
pub fn aes_128_cfb1() -> &'static CipherRef
pub fn aes_128_cfb128() -> &'static CipherRef
pub fn aes_128_cfb8() -> &'static CipherRef
pub fn aes_128_gcm() -> &'static CipherRef
pub fn aes_128_ccm() -> &'static CipherRef
pub fn aes_128_ofb() -> &'static CipherRef
sourcepub fn aes_128_ocb() -> &'static CipherRef
pub fn aes_128_ocb() -> &'static CipherRef
Requires OpenSSL 1.1.0 or newer.
sourcepub fn aes_128_wrap() -> &'static CipherRef
pub fn aes_128_wrap() -> &'static CipherRef
Requires OpenSSL 1.0.2 or newer.
sourcepub fn aes_128_wrap_pad() -> &'static CipherRef
pub fn aes_128_wrap_pad() -> &'static CipherRef
Requires OpenSSL 1.1.0 or newer.
pub fn aes_192_ecb() -> &'static CipherRef
pub fn aes_192_cbc() -> &'static CipherRef
pub fn aes_192_ctr() -> &'static CipherRef
pub fn aes_192_cfb1() -> &'static CipherRef
pub fn aes_192_cfb128() -> &'static CipherRef
pub fn aes_192_cfb8() -> &'static CipherRef
pub fn aes_192_gcm() -> &'static CipherRef
pub fn aes_192_ccm() -> &'static CipherRef
pub fn aes_192_ofb() -> &'static CipherRef
sourcepub fn aes_192_ocb() -> &'static CipherRef
pub fn aes_192_ocb() -> &'static CipherRef
Requires OpenSSL 1.1.0 or newer.
sourcepub fn aes_192_wrap() -> &'static CipherRef
pub fn aes_192_wrap() -> &'static CipherRef
Requires OpenSSL 1.0.2 or newer.
sourcepub fn aes_192_wrap_pad() -> &'static CipherRef
pub fn aes_192_wrap_pad() -> &'static CipherRef
Requires OpenSSL 1.1.0 or newer.
pub fn aes_256_ecb() -> &'static CipherRef
pub fn aes_256_cbc() -> &'static CipherRef
pub fn aes_256_ctr() -> &'static CipherRef
pub fn aes_256_cfb1() -> &'static CipherRef
pub fn aes_256_cfb128() -> &'static CipherRef
pub fn aes_256_cfb8() -> &'static CipherRef
pub fn aes_256_gcm() -> &'static CipherRef
pub fn aes_256_ccm() -> &'static CipherRef
pub fn aes_256_ofb() -> &'static CipherRef
sourcepub fn aes_256_ocb() -> &'static CipherRef
pub fn aes_256_ocb() -> &'static CipherRef
Requires OpenSSL 1.1.0 or newer.
sourcepub fn aes_256_wrap() -> &'static CipherRef
pub fn aes_256_wrap() -> &'static CipherRef
Requires OpenSSL 1.0.2 or newer.
sourcepub fn aes_256_wrap_pad() -> &'static CipherRef
pub fn aes_256_wrap_pad() -> &'static CipherRef
Requires OpenSSL 1.1.0 or newer.
pub fn bf_cbc() -> &'static CipherRef
pub fn bf_ecb() -> &'static CipherRef
pub fn bf_cfb64() -> &'static CipherRef
pub fn bf_ofb() -> &'static CipherRef
pub fn des_cbc() -> &'static CipherRef
pub fn des_ecb() -> &'static CipherRef
pub fn des_ede3() -> &'static CipherRef
pub fn des_ede3_ecb() -> &'static CipherRef
pub fn des_ede3_cbc() -> &'static CipherRef
pub fn des_ede3_cfb8() -> &'static CipherRef
pub fn des_ede3_cfb64() -> &'static CipherRef
pub fn des_ede3_ofb() -> &'static CipherRef
pub fn rc4() -> &'static CipherRef
pub fn cast5_cfb64() -> &'static CipherRef
pub fn cast5_ecb() -> &'static CipherRef
pub fn cast5_cbc() -> &'static CipherRef
pub fn cast5_ofb() -> &'static CipherRef
pub fn chacha20() -> &'static CipherRef
pub fn chacha20_poly1305() -> &'static CipherRef
pub fn sm4_ecb() -> &'static CipherRef
pub fn sm4_cbc() -> &'static CipherRef
pub fn sm4_ctr() -> &'static CipherRef
pub fn sm4_cfb128() -> &'static CipherRef
pub fn sm4_ofb() -> &'static CipherRef
Methods from Deref<Target = CipherRef>§
sourcepub fn nid(&self) -> Nid
pub fn nid(&self) -> Nid
Returns the cipher’s Nid.
This corresponds to EVP_CIPHER_nid
.
sourcepub fn key_length(&self) -> usize
pub fn key_length(&self) -> usize
Returns the length of keys used with this cipher.
This corresponds to EVP_CIPHER_key_length
.
sourcepub fn iv_length(&self) -> usize
pub fn iv_length(&self) -> usize
Returns the length of the IV used with this cipher.
§Note
Ciphers that do not use an IV have an IV length of 0.
This corresponds to EVP_CIPHER_iv_length
.
sourcepub fn block_size(&self) -> usize
pub fn block_size(&self) -> usize
Returns the block size of the cipher.
§Note
Stream ciphers have a block size of 1.
This corresponds to EVP_CIPHER_block_size
.