summaryrefslogtreecommitdiff
path: root/methods/gpgv.cc
diff options
context:
space:
mode:
Diffstat (limited to 'methods/gpgv.cc')
-rw-r--r--methods/gpgv.cc23
1 files changed, 11 insertions, 12 deletions
diff --git a/methods/gpgv.cc b/methods/gpgv.cc
index 04a4f6a83..1ca62557c 100644
--- a/methods/gpgv.cc
+++ b/methods/gpgv.cc
@@ -83,7 +83,8 @@ static constexpr Digest Digests[] = {
static Digest FindDigest(std::string const & Digest)
{
int id = atoi(Digest.c_str());
- if (id >= 0 && static_cast<unsigned>(id) < _count(Digests)) {
+ if (id >= 0 && static_cast<unsigned>(id) < APT_ARRAY_SIZE(Digests))
+ {
return Digests[id];
} else {
return Digests[0];
@@ -309,18 +310,16 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
auto const master = SubKeyMapping.find(l);
if (master == SubKeyMapping.end())
continue;
- for (auto const &sub : master->second)
- if (IsTheSameKey(sub, good))
- {
- if (std::find(Signers.Valid.cbegin(), Signers.Valid.cend(), sub) == Signers.Valid.cend())
- continue;
- found = true;
- Signers.SignedBy.push_back(l);
- Signers.SignedBy.push_back(sub + "!");
- break;
- }
- if (found)
+ auto const validsubkeysig = std::find_if(master->second.cbegin(), master->second.cend(), [&](auto const subkey) {
+ return IsTheSameKey(subkey, good) && std::find(Signers.Valid.cbegin(), Signers.Valid.cend(), subkey) != Signers.Valid.cend();
+ });
+ if (validsubkeysig != master->second.cend())
+ {
+ found = true;
+ Signers.SignedBy.push_back(l);
+ Signers.SignedBy.push_back(*validsubkeysig + "!");
break;
+ }
}
}
if (Debug)