summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@pep.foundation>2020-03-01 15:19:36 +0100
committerNeal H. Walfield <neal@pep.foundation>2020-03-01 15:19:36 +0100
commit0dce6d0698f71728b0721ae25e911e2a2ca76c0b (patch)
treeec5d6b1f4d1e8e0b931bfab7123061a3a9d33114
parent91b6d82a45b7ef61b26743788f77180af74c4871 (diff)
openpgp: Also add KeyIter::subkeys to ValidKeyIter.
- Add an equivalent method to `KeyIter::subkeys` to `ValidKeyIter`.
-rw-r--r--openpgp/src/cert/keyiter.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/openpgp/src/cert/keyiter.rs b/openpgp/src/cert/keyiter.rs
index b8ebb5a3..006dce53 100644
--- a/openpgp/src/cert/keyiter.rs
+++ b/openpgp/src/cert/keyiter.rs
@@ -912,6 +912,29 @@ impl<'a, P, R> ValidKeyIter<'a, P, R>
self.key_handles.extend(h.map(|h| h.clone()));
self
}
+
+ /// Changes the iterator to skip the primary key.
+ pub fn subkeys(self) -> ValidKeyIter<'a, P, key::SubordinateRole> {
+ ValidKeyIter {
+ cert: self.cert,
+ primary: true,
+ subkey_iter: self.subkey_iter,
+
+ time: self.time,
+ policy: self.policy,
+
+ // The filters.
+ secret: self.secret,
+ unencrypted_secret: self.unencrypted_secret,
+ key_handles: self.key_handles,
+ flags: self.flags,
+ alive: self.alive,
+ revoked: self.revoked,
+
+ _p: std::marker::PhantomData,
+ _r: std::marker::PhantomData,
+ }
+ }
}
pub struct KeyBundleIter<'a, P: key::KeyParts, R: key::KeyRole> {