8#ifndef BOTAN_X509_CERTS_H_
9#define BOTAN_X509_CERTS_H_
11#include <botan/x509_obj.h>
32struct X509_Certificate_Data;
60 std::unique_ptr<Public_Key> load_subject_public_key()
const;
67 const std::vector<uint8_t>& subject_public_key_bits()
const;
73 const std::vector<uint8_t>& subject_public_key_info()
const;
84 const std::vector<uint8_t>& subject_public_key_bitstring()
const;
92 const std::vector<uint8_t>& subject_public_key_bitstring_sha1()
const;
98 const X509_DN& issuer_dn()
const;
104 const X509_DN& subject_dn()
const;
120 std::vector<std::string> subject_info(
const std::string&
name)
const;
128 std::vector<std::string> issuer_info(
const std::string&
name)
const;
133 const std::vector<uint8_t>& raw_issuer_dn()
const;
138 std::vector<uint8_t> raw_issuer_dn_sha256()
const;
143 const std::vector<uint8_t>& raw_subject_dn()
const;
148 std::vector<uint8_t> raw_subject_dn_sha256()
const;
154 std::string BOTAN_DEPRECATED(
"Use not_before().to_string()") start_time()
const
156 return not_before().to_string();
163 std::string BOTAN_DEPRECATED(
"Use not_after().to_string()") end_time()
const
165 return not_after().to_string();
184 uint32_t x509_version()
const;
190 const std::vector<uint8_t>& serial_number()
const;
196 bool is_serial_negative()
const;
202 const std::vector<uint8_t>& authority_key_id()
const;
208 const std::vector<uint8_t>& subject_key_id()
const;
215 bool is_self_signed()
const;
221 bool is_CA_cert()
const;
237 bool allowed_extended_usage(
const std::string& usage)
const;
245 bool allowed_extended_usage(
const OID& usage)
const;
265 bool BOTAN_DEPRECATED(
"Use version taking an OID")
266 has_ex_constraint(const
std::
string& ex_constraint) const;
272 bool has_ex_constraint(const
OID& ex_constraint) const;
279 uint32_t path_limit() const;
285 bool is_critical(const
std::
string& ex_name) const;
300 BOTAN_DEPRECATED("Use extended_key_usage") ex_constraints() const;
307 const
std::vector<
OID>& extended_key_usage() const;
321 std::vector<
std::
string> BOTAN_DEPRECATED("Use certificate_policy_oids") policies() const;
323 const
std::vector<
OID>& certificate_policy_oids() const;
335 const
std::vector<uint8_t>& v2_issuer_key_id() const;
341 const
std::vector<uint8_t>& v2_subject_key_id() const;
356 std::
string ocsp_responder() const;
361 std::vector<
std::
string> ca_issuers() const;
366 std::
string crl_distribution_point() const;
377 std::
string fingerprint(const
std::
string& hash_name = "SHA-1") const;
384 bool matches_dns_name(const
std::
string&
name) const;
406#if defined(BOTAN_TARGET_OS_HAS_FILESYSTEM)
439 std::string PEM_label()
const override;
441 std::vector<std::string> alternate_PEM_labels()
const override;
443 void force_decode()
override;
445 const X509_Certificate_Data& data()
const;
447 std::shared_ptr<X509_Certificate_Data> m_data;
X509_Certificate()=default
X509_Certificate(const X509_Certificate &other)=default
X509_Certificate & operator=(const X509_Certificate &other)=default
#define BOTAN_PUBLIC_API(maj, min)
std::string to_string(ErrorType type)
Convert an ErrorType to string.