Enum sequoia_openpgp::types::SymmetricAlgorithm
source · [−]#[non_exhaustive]
pub enum SymmetricAlgorithm {
}
Expand description
The symmetric-key algorithms as defined in Section 9.2 of RFC 4880.
The values can be converted into and from their corresponding values of the serialized format.
Use SymmetricAlgorithm::from
to translate a numeric value to a
symbolic one.
Note: This enum cannot be exhaustively matched to allow future extensions.
Examples
Use SymmetricAlgorithm
to set the preferred symmetric algorithms on a signature:
use sequoia_openpgp as openpgp;
use openpgp::packet::signature::SignatureBuilder;
use openpgp::types::{HashAlgorithm, SymmetricAlgorithm, SignatureType};
let mut builder = SignatureBuilder::new(SignatureType::DirectKey)
.set_hash_algo(HashAlgorithm::SHA512)
.set_preferred_symmetric_algorithms(vec![
SymmetricAlgorithm::AES256,
])?;
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Unencrypted
Null encryption.
IDEA
IDEA block cipher.
TripleDES
3-DES in EDE configuration.
CAST5
CAST5/CAST128 block cipher.
Blowfish
Schneier et.al. Blowfish block cipher.
AES128
10-round AES.
AES192
12-round AES.
AES256
14-round AES.
Twofish
Twofish block cipher.
Camellia128
18 rounds of NESSIEs Camellia.
Camellia192
24 rounds of NESSIEs Camellia w/192 bit keys.
Camellia256
24 rounds of NESSIEs Camellia w/256 bit keys.
Private(u8)
Private algorithm identifier.
Unknown(u8)
Unknown algorithm identifier.
Implementations
sourceimpl SymmetricAlgorithm
impl SymmetricAlgorithm
sourcepub fn variants() -> impl Iterator<Item = Self>
pub fn variants() -> impl Iterator<Item = Self>
Returns an iterator over all valid variants.
Returns an iterator over all known variants. This does not
include the SymmetricAlgorithm::Unencrypted
,
SymmetricAlgorithm::Private
, or
SymmetricAlgorithm::Unknown
variants.
sourcepub fn is_supported(&self) -> bool
pub fn is_supported(&self) -> bool
Returns whether this algorithm is supported by the crypto backend.
All backends support all the AES variants.
Examples
use sequoia_openpgp as openpgp;
use openpgp::types::SymmetricAlgorithm;
assert!(SymmetricAlgorithm::AES256.is_supported());
assert!(SymmetricAlgorithm::TripleDES.is_supported());
assert!(!SymmetricAlgorithm::Unencrypted.is_supported());
assert!(!SymmetricAlgorithm::Private(101).is_supported());
sourcepub fn key_size(self) -> Result<usize>
pub fn key_size(self) -> Result<usize>
Length of a key for this algorithm in bytes.
Fails if the algorithm isn’t known to Sequoia.
sourcepub fn block_size(self) -> Result<usize>
pub fn block_size(self) -> Result<usize>
Length of a block for this algorithm in bytes.
Fails if the algorithm isn’t known to Sequoia.
Trait Implementations
sourceimpl Clone for SymmetricAlgorithm
impl Clone for SymmetricAlgorithm
sourcefn clone(&self) -> SymmetricAlgorithm
fn clone(&self) -> SymmetricAlgorithm
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for SymmetricAlgorithm
impl Debug for SymmetricAlgorithm
sourceimpl Default for SymmetricAlgorithm
impl Default for SymmetricAlgorithm
sourceimpl Display for SymmetricAlgorithm
impl Display for SymmetricAlgorithm
Formats the symmetric algorithm name.
There are two ways the symmetric algorithm name can be formatted. By default the short name is used. The alternate format uses the full algorithm name.
Examples
use sequoia_openpgp as openpgp;
use openpgp::types::SymmetricAlgorithm;
// default, short format
assert_eq!("AES-128", format!("{}", SymmetricAlgorithm::AES128));
// alternate, long format
assert_eq!("AES with 128-bit key", format!("{:#}", SymmetricAlgorithm::AES128));
sourceimpl From<SymmetricAlgorithm> for u8
impl From<SymmetricAlgorithm> for u8
sourcefn from(s: SymmetricAlgorithm) -> u8
fn from(s: SymmetricAlgorithm) -> u8
Converts to this type from the input type.
sourceimpl From<u8> for SymmetricAlgorithm
impl From<u8> for SymmetricAlgorithm
sourceimpl Hash for SymmetricAlgorithm
impl Hash for SymmetricAlgorithm
sourceimpl Ord for SymmetricAlgorithm
impl Ord for SymmetricAlgorithm
sourceimpl PartialEq<SymmetricAlgorithm> for SymmetricAlgorithm
impl PartialEq<SymmetricAlgorithm> for SymmetricAlgorithm
sourcefn eq(&self, other: &SymmetricAlgorithm) -> bool
fn eq(&self, other: &SymmetricAlgorithm) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &SymmetricAlgorithm) -> bool
fn ne(&self, other: &SymmetricAlgorithm) -> bool
This method tests for !=
.
sourceimpl PartialOrd<SymmetricAlgorithm> for SymmetricAlgorithm
impl PartialOrd<SymmetricAlgorithm> for SymmetricAlgorithm
sourcefn partial_cmp(&self, other: &SymmetricAlgorithm) -> Option<Ordering>
fn partial_cmp(&self, other: &SymmetricAlgorithm) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Copy for SymmetricAlgorithm
impl Eq for SymmetricAlgorithm
impl StructuralEq for SymmetricAlgorithm
impl StructuralPartialEq for SymmetricAlgorithm
Auto Trait Implementations
impl RefUnwindSafe for SymmetricAlgorithm
impl Send for SymmetricAlgorithm
impl Sync for SymmetricAlgorithm
impl Unpin for SymmetricAlgorithm
impl UnwindSafe for SymmetricAlgorithm
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more