8#ifndef BOTAN_CERT_STORE_H_
9#define BOTAN_CERT_STORE_H_
11#include <botan/x509cert.h>
12#include <botan/x509_crl.h>
32 virtual std::shared_ptr<const X509_Certificate>
33 find_cert(
const X509_DN& subject_dn,
const std::vector<uint8_t>& key_id)
const;
40 const X509_DN& subject_dn,
const std::vector<uint8_t>& key_id)
const = 0;
49 virtual std::shared_ptr<const X509_Certificate>
58 virtual std::shared_ptr<const X509_Certificate>
66 virtual std::shared_ptr<const X509_CRL> find_crl_for(
const X509_Certificate& subject)
const;
113 void add_certificate(std::shared_ptr<const X509_Certificate> cert);
125 void add_crl(std::shared_ptr<const X509_CRL> crl);
130 std::vector<X509_DN> all_subjects()
const override;
136 std::shared_ptr<const X509_Certificate> find_cert(
138 const std::vector<uint8_t>& key_id)
const override;
144 std::vector<std::shared_ptr<const X509_Certificate>> find_all_certs(
145 const X509_DN& subject_dn,
const std::vector<uint8_t>& key_id)
const override;
147 std::shared_ptr<const X509_Certificate>
148 find_cert_by_pubkey_sha1(
const std::vector<uint8_t>& key_hash)
const override;
150 std::shared_ptr<const X509_Certificate>
151 find_cert_by_raw_subject_dn_sha256(
const std::vector<uint8_t>& subject_hash)
const override;
156 std::shared_ptr<const X509_CRL> find_crl_for(
const X509_Certificate& subject)
const override;
159 std::vector<std::shared_ptr<const X509_Certificate>> m_certs;
160 std::vector<std::shared_ptr<const X509_CRL>> m_crls;
Certificate_Store_In_Memory()=default
Certificate_Store_In_Memory(const std::string &dir)
bool certificate_known(const X509_Certificate &cert) const
virtual std::vector< std::shared_ptr< const X509_Certificate > > find_all_certs(const X509_DN &subject_dn, const std::vector< uint8_t > &key_id) const =0
virtual std::shared_ptr< const X509_Certificate > find_cert_by_pubkey_sha1(const std::vector< uint8_t > &key_hash) const =0
virtual std::vector< X509_DN > all_subjects() const =0
virtual std::shared_ptr< const X509_Certificate > find_cert_by_raw_subject_dn_sha256(const std::vector< uint8_t > &subject_hash) const =0
const X509_DN & subject_dn() const
const std::vector< uint8_t > & subject_key_id() const
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)