8#ifndef BOTAN_X509_CERTS_H_
9#define BOTAN_X509_CERTS_H_
11#include <botan/x509_obj.h>
32struct X509_Certificate_Data;
49 std::unique_ptr<Public_Key> subject_public_key()
const;
60 BOTAN_DEPRECATED(
"Use subject_public_key")
61 std::unique_ptr<Public_Key> load_subject_public_key()
const;
68 const std::vector<uint8_t>& subject_public_key_bits()
const;
74 const std::vector<uint8_t>& subject_public_key_info()
const;
85 const std::vector<uint8_t>& subject_public_key_bitstring()
const;
93 const std::vector<uint8_t>& subject_public_key_bitstring_sha1()
const;
99 const X509_DN& issuer_dn()
const;
105 const X509_DN& subject_dn()
const;
121 std::vector<std::string> subject_info(std::string_view
name)
const;
129 std::vector<std::string> issuer_info(std::string_view
name)
const;
134 const std::vector<uint8_t>& raw_issuer_dn()
const;
139 std::vector<uint8_t> raw_issuer_dn_sha256()
const;
144 const std::vector<uint8_t>& raw_subject_dn()
const;
149 std::vector<uint8_t> raw_subject_dn_sha256()
const;
167 uint32_t x509_version()
const;
173 const std::vector<uint8_t>& serial_number()
const;
179 bool is_serial_negative()
const;
185 const std::vector<uint8_t>& authority_key_id()
const;
191 const std::vector<uint8_t>& subject_key_id()
const;
198 bool is_self_signed()
const;
204 bool is_CA_cert()
const;
220 bool allowed_extended_usage(std::string_view usage)
const;
228 bool allowed_extended_usage(
const OID& usage)
const;
249 bool has_ex_constraint(std::string_view ex_constraint)
const;
255 bool has_ex_constraint(
const OID& ex_constraint)
const;
262 uint32_t path_limit()
const;
268 bool is_critical(std::string_view ex_name)
const;
282 const std::vector<OID>& extended_key_usage()
const;
296 const std::vector<OID>& certificate_policy_oids()
const;
308 const std::vector<uint8_t>& v2_issuer_key_id()
const;
314 const std::vector<uint8_t>& v2_subject_key_id()
const;
329 std::string ocsp_responder()
const;
334 std::vector<std::string> ca_issuers()
const;
339 std::string crl_distribution_point()
const;
344 std::string to_string()
const;
350 std::string fingerprint(std::string_view hash_name =
"SHA-1")
const;
357 bool matches_dns_name(std::string_view
name)
const;
379#if defined(BOTAN_TARGET_OS_HAS_FILESYSTEM)
412 std::string PEM_label()
const override;
414 std::vector<std::string> alternate_PEM_labels()
const override;
416 void force_decode()
override;
418 const X509_Certificate_Data& data()
const;
420 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)
bool operator<(const OID &a, const OID &b)
bool operator==(const AlgorithmIdentifier &a1, const AlgorithmIdentifier &a2)