summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@pep.foundation>2020-07-22 11:54:20 +0200
committerNeal H. Walfield <neal@pep.foundation>2020-07-22 12:02:12 +0200
commit204c3de9c99abfa716b9180b9adc222c84242d47 (patch)
treef7e48bd92ccb00d4e4b62ef2a49bf93e4a680ffb
parent67d35136fb70226a962232dfe483d83d23c143b5 (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.rs8
-rw-r--r--openpgp/src/types/features.rs8
-rw-r--r--openpgp/src/types/mod.rs2
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![