diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2019-05-21 12:06:12 +0200 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2019-05-21 13:45:58 +0200 |
commit | 3863140b0d71eff1ff2240fcd0c7fb769b17a971 (patch) | |
tree | 92d6664d2ec2f3a6b73b843ae0ac431b6fc83eec | |
parent | 9e6d056dab32abd1f8381a701e1cd00d4fb8c660 (diff) |
openpgp: New error for unsupported compression algorithms.
-rw-r--r-- | ffi/src/error.rs | 2 | ||||
-rw-r--r-- | openpgp-ffi/include/sequoia/openpgp/error.h | 5 | ||||
-rw-r--r-- | openpgp-ffi/src/error.rs | 8 | ||||
-rw-r--r-- | openpgp/src/lib.rs | 4 | ||||
-rw-r--r-- | openpgp/src/serialize/stream.rs | 3 |
5 files changed, 21 insertions, 1 deletions
diff --git a/ffi/src/error.rs b/ffi/src/error.rs index a28b9b6f..889e4ac5 100644 --- a/ffi/src/error.rs +++ b/ffi/src/error.rs @@ -44,6 +44,8 @@ impl<'a> FromSequoiaError<'a> for Status { Status::UnsupportedSymmetricAlgorithm, &openpgp::Error::UnsupportedAEADAlgorithm(_) => Status::UnsupportedAEADAlgorithm, + &openpgp::Error::UnsupportedCompressionAlgorithm(_) => + Status::UnsupportedCompressionAlgorithm, &openpgp::Error::UnsupportedSignatureType(_) => Status::UnsupportedSignatureType, &openpgp::Error::InvalidPassword => diff --git a/openpgp-ffi/include/sequoia/openpgp/error.h b/openpgp-ffi/include/sequoia/openpgp/error.h index 239ebcf9..551aaa82 100644 --- a/openpgp-ffi/include/sequoia/openpgp/error.h +++ b/openpgp-ffi/include/sequoia/openpgp/error.h @@ -73,6 +73,11 @@ typedef enum pgp_status { PGP_STATUS_UNSUPPORTED_AEAD_ALGORITHM = -26, /*/ + /// Unsupported Compression algorithm. + /*/ + PGP_STATUS_UNSUPPORTED_COMPRESSION_ALGORITHM = -28, + + /*/ /// Unsupport signature type. /*/ PGP_STATUS_UNSUPPORTED_SIGNATURE_TYPE = -20, diff --git a/openpgp-ffi/src/error.rs b/openpgp-ffi/src/error.rs index 66dd7417..bf4aeb2b 100644 --- a/openpgp-ffi/src/error.rs +++ b/openpgp-ffi/src/error.rs @@ -93,6 +93,9 @@ pub enum Status { /// Unsupported AEAD algorithm. UnsupportedAEADAlgorithm = -26, + /// Unsupported Compression algorithm. + UnsupportedCompressionAlgorithm = -28, + /// Unsupport signature type. UnsupportedSignatureType = -20, @@ -139,6 +142,7 @@ pub enum Status { // XXX: Skipping ManipulatedMessage = -25 // XXX: Skipping UnsupportedAEADAlgorithm = -26 // XXX: Skipping MissingSessionKey = -27 + // XXX: Skipping UnsupportedCompressionAlgorithm = -28 } /// Returns the error message. @@ -165,6 +169,8 @@ pub extern "C" fn pgp_status_to_string(status: Status) -> *const c_char { UnsupportedSymmetricAlgorithm => "Unsupported symmetric algorithm\x00", UnsupportedAEADAlgorithm => "Unsupported AEAD algorithm\x00", + UnsupportedCompressionAlgorithm => + "Unsupported compression algorithm\x00", UnsupportedSignatureType => "Unsupport signature type\x00", InvalidPassword => "Invalid password\x00", InvalidSessionKey => "Invalid session key\x00", @@ -201,6 +207,8 @@ impl<'a> From<&'a failure::Error> for Status { Status::UnsupportedSymmetricAlgorithm, &openpgp::Error::UnsupportedAEADAlgorithm(_) => Status::UnsupportedAEADAlgorithm, + &openpgp::Error::UnsupportedCompressionAlgorithm(_) => + Status::UnsupportedCompressionAlgorithm, &openpgp::Error::UnsupportedSignatureType(_) => Status::UnsupportedSignatureType, &openpgp::Error::InvalidPassword => diff --git a/openpgp/src/lib.rs b/openpgp/src/lib.rs index c9fe4ff5..d32dca1c 100644 --- a/openpgp/src/lib.rs +++ b/openpgp/src/lib.rs @@ -186,6 +186,10 @@ pub enum Error { #[fail(display = "Unsupported AEAD algorithm: {}", _0)] UnsupportedAEADAlgorithm(constants::AEADAlgorithm), + /// Unsupported Compression algorithm. + #[fail(display = "Unsupported Compression algorithm: {}", _0)] + UnsupportedCompressionAlgorithm(constants::CompressionAlgorithm), + /// Unsupported signature type. #[fail(display = "Unsupported signature type: {}", _0)] UnsupportedSignatureType(SignatureType), diff --git a/openpgp/src/serialize/stream.rs b/openpgp/src/serialize/stream.rs index 1d8a50bf..14b5fe63 100644 --- a/openpgp/src/serialize/stream.rs +++ b/openpgp/src/serialize/stream.rs @@ -751,7 +751,8 @@ impl<'a> Compressor<'a> { #[cfg(feature = "compression-bzip2")] CompressionAlgorithm::BZip2 => writer::BZ::new(inner, Cookie::new(level)), - _ => unimplemented!(), + a => + return Err(Error::UnsupportedCompressionAlgorithm(a).into()), }; Ok(writer::Stack::from(Box::new(Self{inner: inner.into()}))) |