diff options
Diffstat (limited to 'src/cert/certstore')
-rw-r--r-- | src/cert/certstore/certstor.cpp | 19 | ||||
-rw-r--r-- | src/cert/certstore/certstor.h | 14 |
2 files changed, 11 insertions, 22 deletions
diff --git a/src/cert/certstore/certstor.cpp b/src/cert/certstore/certstor.cpp index 3cba2f39e..7aa528d04 100644 --- a/src/cert/certstore/certstor.cpp +++ b/src/cert/certstore/certstor.cpp @@ -9,12 +9,7 @@ namespace Botan { -Certificate_Store* Certificate_Store_Memory::clone() const - { - return new Certificate_Store_Memory(*this); - } - -void Certificate_Store_Memory::add_certificate(const X509_Certificate& cert) +void Certificate_Store_In_Memory::add_certificate(const X509_Certificate& cert) { for(size_t i = 0; i != certs.size(); ++i) { @@ -26,7 +21,7 @@ void Certificate_Store_Memory::add_certificate(const X509_Certificate& cert) } std::vector<X509_Certificate> -Certificate_Store_Memory::find_cert_by_subject_and_key_id( +Certificate_Store_In_Memory::find_cert_by_subject_and_key_id( const X509_DN& subject_dn, const MemoryRegion<byte>& key_id) const { @@ -50,7 +45,7 @@ Certificate_Store_Memory::find_cert_by_subject_and_key_id( return result; } -void Certificate_Store_Memory::add_crl(const X509_CRL& crl) +void Certificate_Store_In_Memory::add_crl(const X509_CRL& crl) { X509_DN crl_issuer = crl.issuer_dn(); @@ -59,11 +54,9 @@ void Certificate_Store_Memory::add_crl(const X509_CRL& crl) // Found an update of a previously existing one; replace it if(crls[i].issuer_dn() == crl_issuer) { - if(crls[i].this_update() < crl.this_update()) - { + if(crls[i].this_update() <= crl.this_update()) crls[i] = crl; - return; - } + return; } } @@ -72,7 +65,7 @@ void Certificate_Store_Memory::add_crl(const X509_CRL& crl) } std::vector<X509_CRL> -Certificate_Store_Memory::find_crl_by_subject_and_key_id( +Certificate_Store_In_Memory::find_crl_by_issuer_and_key_id( const X509_DN& issuer_dn, const MemoryRegion<byte>& key_id) const { diff --git a/src/cert/certstore/certstor.h b/src/cert/certstore/certstor.h index 374013984..604541d52 100644 --- a/src/cert/certstore/certstor.h +++ b/src/cert/certstore/certstor.h @@ -21,8 +21,6 @@ class BOTAN_DLL Certificate_Store public: virtual ~Certificate_Store() {} - virtual Certificate_Store* clone() const = 0; - /** * Add a certificate; this may fail if the store is write-only */ @@ -45,7 +43,7 @@ class BOTAN_DLL Certificate_Store * Find CRLs by the DN and key id of the issuer */ virtual std::vector<X509_CRL> - find_crl_by_subject_and_key_id( + find_crl_by_issuer_and_key_id( const X509_DN& issuer_dn, const MemoryRegion<byte>& key_id) const = 0; }; @@ -53,11 +51,9 @@ class BOTAN_DLL Certificate_Store /** * In Memory Certificate Store */ -class BOTAN_DLL Certificate_Store_Memory : public Certificate_Store +class BOTAN_DLL Certificate_Store_In_Memory : public Certificate_Store { public: - Certificate_Store* clone() const; - void add_certificate(const X509_Certificate& cert); void add_crl(const X509_CRL& crl); @@ -66,13 +62,13 @@ class BOTAN_DLL Certificate_Store_Memory : public Certificate_Store const X509_DN& subject_dn, const MemoryRegion<byte>& key_id) const; - std::vector<X509_CRL> find_crl_by_subject_and_key_id( + std::vector<X509_CRL> find_crl_by_issuer_and_key_id( const X509_DN& issuer_dn, const MemoryRegion<byte>& key_id) const; - Certificate_Store_Memory() {} + Certificate_Store_In_Memory() {} private: - // TODO: Add indexing on the DN and key id to avoid linear search? + // TODO: Add indexing on the DN and key id to avoid linear search std::vector<X509_Certificate> certs; std::vector<X509_CRL> crls; }; |