aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/x509/certstor.cpp
diff options
context:
space:
mode:
authorNuno Goncalves <[email protected]>2017-03-05 11:18:27 +0100
committerNuno Goncalves <[email protected]>2017-04-03 22:39:11 +0200
commit8e272045fbf58223be5d8cffa2f1592380dd79a7 (patch)
treeb7879adc8c59e12c51a70a703d0bf69be8832c74 /src/lib/x509/certstor.cpp
parentb1de0a91c2205349beefa205b36cc89a5ebb274b (diff)
Refactor find_cert_by_pubkey_sha1 to reuse hash object
Signed-off-by: Nuno Goncalves <[email protected]>
Diffstat (limited to 'src/lib/x509/certstor.cpp')
-rw-r--r--src/lib/x509/certstor.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/x509/certstor.cpp b/src/lib/x509/certstor.cpp
index e068baa18..63a5cd645 100644
--- a/src/lib/x509/certstor.cpp
+++ b/src/lib/x509/certstor.cpp
@@ -71,9 +71,13 @@ Certificate_Store_In_Memory::find_cert_by_pubkey_sha1(const std::vector<uint8_t>
if(key_hash.size() != 20)
throw Invalid_Argument("Certificate_Store_In_Memory::find_cert_by_pubkey_sha1 invalid hash");
- for(const auto& cert : m_certs)
- if(key_hash == cert->subject_public_key_bitstring_sha1())
+ std::unique_ptr<HashFunction> hash(HashFunction::create("SHA-1"));
+
+ for(const auto& cert : m_certs){
+ hash->update(cert->subject_public_key_bitstring());
+ if(key_hash == hash->final_stdvec()) //final_stdvec also clears the hash to initial state
return cert;
+ }
return nullptr;
}