8#ifndef BOTAN_X509_CA_H_
9#define BOTAN_X509_CA_H_
11#include <botan/x509cert.h>
12#include <botan/x509_crl.h>
18class RandomNumberGenerator;
75 const BigInt& serial_number,
88 std::chrono::system_clock::time_point issue_time,
89 std::chrono::seconds next_update)
const;
101 const std::vector<CRL_Entry>& new_entries,
103 std::chrono::system_clock::time_point issue_time,
104 std::chrono::seconds next_update)
const;
114 uint32_t next_update = 604800)
const;
125 const std::vector<CRL_Entry>& new_entries,
127 uint32_t next_update = 604800)
const;
138 std::string_view hash_fn);
156 const std::vector<uint8_t>& pub_key,
179 const BigInt& serial_number,
181 const std::vector<uint8_t>& pub_key,
201 std::string_view hash_fn,
202 std::string_view padding_method,
214 std::string_view hash_fn,
230 BOTAN_DEPRECATED(
"Use version taking padding as an explicit arg")
233 const
std::map<
std::
string,
std::
string>& opts,
234 std::string_view hash_fn,
236 X509_CA(ca_certificate, key, hash_fn, opts.at("padding"), rng) {}
247 X509_CRL make_crl(
const std::vector<CRL_Entry>& entries,
250 std::chrono::system_clock::time_point issue_time,
251 std::chrono::seconds next_update)
const;
255 std::string m_hash_fn;
256 std::unique_ptr<PK_Signer> m_signer;
X509_CA(const X509_Certificate &ca_certificate, const Private_Key &key, std::string_view hash_fn, RandomNumberGenerator &rng)
X509_CA & operator=(X509_CA &&)=default
PK_Signer & signature_op()
const AlgorithmIdentifier algorithm_identifier() const
X509_CA & operator=(const X509_CA &)=delete
X509_CA(const X509_CA &)=delete
const X509_Certificate & ca_certificate() const
X509_CA(X509_CA &&)=default
const std::string & hash_function() const
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)