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
.
Trait Implementations§
Source§impl ForeignType for Cipher
impl ForeignType for Cipher
impl Send for Cipher
impl Sync for Cipher
Auto Trait Implementations§
impl Freeze for Cipher
impl RefUnwindSafe for Cipher
impl Unpin for Cipher
impl UnwindSafe for Cipher
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes