Enum sequoia_openpgp::types::PublicKeyAlgorithm [−][src]
#[non_exhaustive] pub enum PublicKeyAlgorithm { RSAEncryptSign, RSAEncrypt, RSASign, ElGamalEncrypt, DSA, ECDH, ECDSA, ElGamalEncryptSign, EdDSA, Private(u8), Unknown(u8), }
Expand description
The OpenPGP public key algorithms as defined in Section 9.1 of RFC 4880, and Section 5 of RFC 6637.
Note: This enum cannot be exhaustively matched to allow future extensions.
Examples
use sequoia_openpgp as openpgp; use openpgp::cert::prelude::*; use openpgp::types::PublicKeyAlgorithm; let (cert, _) = CertBuilder::new() .set_cipher_suite(CipherSuite::Cv25519) .generate()?; assert_eq!(cert.primary_key().pk_algo(), PublicKeyAlgorithm::EdDSA);
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
RSA (Encrypt or Sign)
Use PublicKeyAlgorithm::RSAEncryptSign
.
RSA Encrypt-Only, deprecated in RFC 4880.
Use PublicKeyAlgorithm::RSAEncryptSign
.
RSA Sign-Only, deprecated in RFC 4880.
ElGamal (Encrypt-Only)
DSA (Digital Signature Algorithm)
Elliptic curve DH
Elliptic curve DSA
If you really must, use PublicKeyAlgorithm::ElGamalEncrypt
.
ElGamal (Encrypt or Sign), deprecated in RFC 4880.
“Twisted” Edwards curve DSA
Private(u8)
Private algorithm identifier.
Unknown(u8)
Unknown algorithm identifier.
Implementations
Returns true if the algorithm can sign data.
Examples
use sequoia_openpgp as openpgp; use openpgp::types::PublicKeyAlgorithm; assert!(PublicKeyAlgorithm::EdDSA.for_signing()); assert!(PublicKeyAlgorithm::RSAEncryptSign.for_signing()); assert!(!PublicKeyAlgorithm::ElGamalEncrypt.for_signing());
Returns true if the algorithm can encrypt data.
Examples
use sequoia_openpgp as openpgp; use openpgp::types::PublicKeyAlgorithm; assert!(!PublicKeyAlgorithm::EdDSA.for_encryption()); assert!(PublicKeyAlgorithm::RSAEncryptSign.for_encryption()); assert!(PublicKeyAlgorithm::ElGamalEncrypt.for_encryption());
Returns whether this algorithm is supported.
Examples
use sequoia_openpgp as openpgp; use openpgp::types::PublicKeyAlgorithm; assert!(PublicKeyAlgorithm::EdDSA.is_supported()); assert!(PublicKeyAlgorithm::RSAEncryptSign.is_supported()); assert!(!PublicKeyAlgorithm::ElGamalEncrypt.is_supported()); assert!(!PublicKeyAlgorithm::Private(101).is_supported());
Trait Implementations
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Auto Trait Implementations
impl RefUnwindSafe for PublicKeyAlgorithm
impl Send for PublicKeyAlgorithm
impl Sync for PublicKeyAlgorithm
impl Unpin for PublicKeyAlgorithm
impl UnwindSafe for PublicKeyAlgorithm
Blanket Implementations
Mutably borrows from an owned value. Read more
type Output = T
type Output = T
Should always be Self