diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2019-11-27 14:07:58 +0100 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2019-11-27 14:09:26 +0100 |
commit | 5eb6ad9f545291f05f5f2455684da68594c8a4dd (patch) | |
tree | 4e7aaae032f0aef7c8606a5ddc3c0ff51095fae3 /tool/src | |
parent | 6fa1c0c42d21c7876c594f9c658742f6639f86b9 (diff) |
openpgp: Fix issuer handling in the streaming verifier.
- To that end, make VerificationHelper::get_public_keys take
KeyHandles for all the issuers.
Diffstat (limited to 'tool/src')
-rw-r--r-- | tool/src/commands/decrypt.rs | 2 | ||||
-rw-r--r-- | tool/src/commands/mod.rs | 14 |
2 files changed, 10 insertions, 6 deletions
diff --git a/tool/src/commands/decrypt.rs b/tool/src/commands/decrypt.rs index b85e6797..33725290 100644 --- a/tool/src/commands/decrypt.rs +++ b/tool/src/commands/decrypt.rs @@ -123,7 +123,7 @@ impl<'a> Helper<'a> { } impl<'a> VerificationHelper for Helper<'a> { - fn get_public_keys(&mut self, ids: &[KeyID]) -> Result<Vec<TPK>> { + fn get_public_keys(&mut self, ids: &[openpgp::KeyHandle]) -> Result<Vec<TPK>> { self.vhelper.get_public_keys(ids) } fn check(&mut self, structure: &MessageStructure) -> Result<()> { diff --git a/tool/src/commands/mod.rs b/tool/src/commands/mod.rs index a7b76038..03af9aa6 100644 --- a/tool/src/commands/mod.rs +++ b/tool/src/commands/mod.rs @@ -301,7 +301,7 @@ impl<'a> VHelper<'a> { } impl<'a> VerificationHelper for VHelper<'a> { - fn get_public_keys(&mut self, ids: &[KeyID]) -> Result<Vec<TPK>> { + fn get_public_keys(&mut self, ids: &[openpgp::KeyHandle]) -> Result<Vec<TPK>> { let mut tpks = self.tpks.take().unwrap(); let seen: HashSet<_> = tpks.iter() .flat_map(|tpk| { @@ -314,9 +314,11 @@ impl<'a> VerificationHelper for VHelper<'a> { self.trusted = seen.clone(); // Try to get missing TPKs from the mapping. - for id in ids.iter().filter(|i| !seen.contains(i)) { + for id in ids.iter().map(|i| KeyID::from(i.clone())) + .filter(|i| !seen.contains(i)) + { let _ = - self.mapping.lookup_by_subkeyid(id) + self.mapping.lookup_by_subkeyid(&id) .and_then(|binding| { self.labels.insert(id.clone(), binding.label()?); @@ -335,9 +337,11 @@ impl<'a> VerificationHelper for VHelper<'a> { let seen = self.trusted.clone(); // Try to get missing TPKs from the pool. - for id in ids.iter().filter(|i| !seen.contains(i)) { + for id in ids.iter().map(|i| KeyID::from(i.clone())) + .filter(|i| !seen.contains(i)) + { let _ = - store::Store::lookup_by_subkeyid(self.ctx, id) + store::Store::lookup_by_subkeyid(self.ctx, &id) .and_then(|key| { // Keys from the pool are NOT trusted. key.tpk() |