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§
source§impl SymmetricAlgorithm
impl SymmetricAlgorithm
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::IDEA.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 Sequoia does not support this algorithm.
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 Sequoia does not support this algorithm.
Trait Implementations§
source§impl Clone for SymmetricAlgorithm
impl Clone for SymmetricAlgorithm
source§fn clone(&self) -> SymmetricAlgorithm
fn clone(&self) -> SymmetricAlgorithm
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for SymmetricAlgorithm
impl Debug for SymmetricAlgorithm
source§impl Default for SymmetricAlgorithm
impl Default for SymmetricAlgorithm
source§impl Display for SymmetricAlgorithm
impl Display for SymmetricAlgorithm
source§impl From<SymmetricAlgorithm> for u8
impl From<SymmetricAlgorithm> for u8
source§fn from(s: SymmetricAlgorithm) -> u8
fn from(s: SymmetricAlgorithm) -> u8
source§impl From<u8> for SymmetricAlgorithm
impl From<u8> for SymmetricAlgorithm
source§impl Hash for SymmetricAlgorithm
impl Hash for SymmetricAlgorithm
source§impl Ord for SymmetricAlgorithm
impl Ord for SymmetricAlgorithm
source§fn cmp(&self, other: &SymmetricAlgorithm) -> Ordering
fn cmp(&self, other: &SymmetricAlgorithm) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<SymmetricAlgorithm> for SymmetricAlgorithm
impl PartialEq<SymmetricAlgorithm> for SymmetricAlgorithm
source§fn eq(&self, other: &SymmetricAlgorithm) -> bool
fn eq(&self, other: &SymmetricAlgorithm) -> bool
self and other values to be equal, and is used
by ==.source§impl PartialOrd<SymmetricAlgorithm> for SymmetricAlgorithm
impl PartialOrd<SymmetricAlgorithm> for SymmetricAlgorithm
source§fn partial_cmp(&self, other: &SymmetricAlgorithm) -> Option<Ordering>
fn partial_cmp(&self, other: &SymmetricAlgorithm) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read more