8 #ifndef BOTAN_CERT_STORE_H_
9 #define BOTAN_CERT_STORE_H_
11 #include <botan/x509cert.h>
12 #include <botan/x509_crl.h>
30 virtual std::shared_ptr<const X509_Certificate>
31 find_cert(
const X509_DN& subject_dn,
const std::vector<uint8_t>& key_id)
const = 0;
37 virtual std::vector<std::shared_ptr<const X509_Certificate>> find_all_certs(
38 const X509_DN& subject_dn,
const std::vector<uint8_t>& key_id)
const = 0;
47 virtual std::shared_ptr<const X509_Certificate>
48 find_cert_by_pubkey_sha1(
const std::vector<uint8_t>& key_hash)
const = 0;
56 virtual std::shared_ptr<const X509_Certificate>
57 find_cert_by_raw_subject_dn_sha256(
const std::vector<uint8_t>& subject_hash)
const = 0;
64 virtual std::shared_ptr<const X509_CRL> find_crl_for(
const X509_Certificate& subject)
const;
76 virtual std::vector<X509_DN> all_subjects()
const = 0;
111 void add_certificate(std::shared_ptr<const X509_Certificate> cert);
123 void add_crl(std::shared_ptr<const X509_CRL> crl);
128 std::vector<X509_DN> all_subjects()
const override;
134 std::shared_ptr<const X509_Certificate> find_cert(
136 const std::vector<uint8_t>& key_id)
const override;
142 std::vector<std::shared_ptr<const X509_Certificate>> find_all_certs(
143 const X509_DN& subject_dn,
const std::vector<uint8_t>& key_id)
const override;
145 std::shared_ptr<const X509_Certificate>
146 find_cert_by_pubkey_sha1(
const std::vector<uint8_t>& key_hash)
const override;
148 std::shared_ptr<const X509_Certificate>
149 find_cert_by_raw_subject_dn_sha256(
const std::vector<uint8_t>& subject_hash)
const override;
154 std::shared_ptr<const X509_CRL> find_crl_for(
const X509_Certificate& subject)
const override;
157 std::vector<std::shared_ptr<const X509_Certificate>> m_certs;
158 std::vector<std::shared_ptr<const X509_CRL>> m_crls;
const std::vector< uint8_t > & subject_key_id() const
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
bool certificate_known(const X509_Certificate &cert) const
const X509_DN & subject_dn() const