diff options
author | Neal H. Walfield <neal@pep.foundation> | 2020-07-22 11:54:20 +0200 |
---|---|---|
committer | Neal H. Walfield <neal@pep.foundation> | 2020-07-22 12:02:12 +0200 |
commit | 204c3de9c99abfa716b9180b9adc222c84242d47 (patch) | |
tree | f7e48bd92ccb00d4e4b62ef2a49bf93e4a680ffb | |
parent | 67d35136fb70226a962232dfe483d83d23c143b5 (diff) |
openpgp: Don't implement Default for Features.
- The implementation of `Default` for `Features` returned an empty
feature set. This is not a reasonable feature set: the MDC flag
should almost always be set.
- Remove the `Default` implementation and use `Features::empty` when
an empty feature set is really required.
-rw-r--r-- | openpgp/src/packet/signature/subpacket.rs | 8 | ||||
-rw-r--r-- | openpgp/src/types/features.rs | 8 | ||||
-rw-r--r-- | openpgp/src/types/mod.rs | 2 |
3 files changed, 5 insertions, 13 deletions
diff --git a/openpgp/src/packet/signature/subpacket.rs b/openpgp/src/packet/signature/subpacket.rs index 4049b15c..3055471c 100644 --- a/openpgp/src/packet/signature/subpacket.rs +++ b/openpgp/src/packet/signature/subpacket.rs @@ -2699,13 +2699,13 @@ fn accessors() { assert_eq!(sig_.reason_for_revocation(), Some((ReasonForRevocation::KeyRetired, &b"foobar"[..]))); - let feats = Features::default().set_mdc(); + let feats = Features::empty().set_mdc(); sig = sig.set_features(&feats).unwrap(); let sig_ = sig.clone().sign_hash(&mut keypair, hash.clone()).unwrap(); assert_eq!(sig_.features().unwrap(), feats); - let feats = Features::default().set_aead(); + let feats = Features::empty().set_aead(); sig = sig.set_features(&feats).unwrap(); let sig_ = sig.clone().sign_hash(&mut keypair, hash.clone()).unwrap(); @@ -2981,13 +2981,13 @@ fn subpacket_test_2() { KeyFlags::default().set_certification(true).set_signing(true)) })); - assert_eq!(sig.features().unwrap(), Features::default().set_mdc()); + assert_eq!(sig.features().unwrap(), Features::empty().set_mdc()); assert_eq!(sig.subpacket(SubpacketTag::Features), Some(&Subpacket { length: 2.into(), critical: false, value: SubpacketValue::Features( - Features::default().set_mdc()) + Features::empty().set_mdc()) })); let keyid = "F004 B9A4 5C58 6126".parse().unwrap(); diff --git a/openpgp/src/types/features.rs b/openpgp/src/types/features.rs index 22514d09..ca82f797 100644 --- a/openpgp/src/types/features.rs +++ b/openpgp/src/types/features.rs @@ -57,14 +57,6 @@ pub struct Features{ raw: Vec<u8>, } -impl Default for Features { - fn default() -> Self { - Features { - raw: Vec::new(), - } - } -} - impl fmt::Debug for Features { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { // Print known features first. diff --git a/openpgp/src/types/mod.rs b/openpgp/src/types/mod.rs index d98e2464..83e5ed0b 100644 --- a/openpgp/src/types/mod.rs +++ b/openpgp/src/types/mod.rs @@ -737,7 +737,7 @@ impl Arbitrary for SymmetricAlgorithm { /// use openpgp::types::{Features, HashAlgorithm, AEADAlgorithm, SignatureType}; /// /// # fn main() -> openpgp::Result<()> { -/// let features = Features::default().set_aead(); +/// let features = Features::empty().set_aead(); /// let mut builder = SignatureBuilder::new(SignatureType::DirectKey) /// .set_features(&features)? /// .set_preferred_aead_algorithms(vec![ |