8 #ifndef BOTAN_X509_CERTS_H_ 9 #define BOTAN_X509_CERTS_H_ 11 #include <botan/x509_obj.h> 12 #include <botan/x509_key.h> 13 #include <botan/asn1_time.h> 14 #include <botan/key_constraint.h> 15 #include <botan/name_constraint.h> 22 class AlternativeName;
35 struct X509_Certificate_Data;
52 return load_subject_public_key().release();
64 std::unique_ptr<Public_Key> load_subject_public_key()
const;
71 const std::vector<uint8_t>& subject_public_key_bits()
const;
77 const std::vector<uint8_t>& subject_public_key_info()
const;
88 const std::vector<uint8_t>& subject_public_key_bitstring()
const;
96 const std::vector<uint8_t>& subject_public_key_bitstring_sha1()
const;
102 const X509_DN& issuer_dn()
const;
108 const X509_DN& subject_dn()
const;
124 std::vector<std::string> subject_info(
const std::string&
name)
const;
132 std::vector<std::string> issuer_info(
const std::string&
name)
const;
137 const std::vector<uint8_t>& raw_issuer_dn()
const;
142 std::vector<uint8_t> raw_issuer_dn_sha256()
const;
147 const std::vector<uint8_t>& raw_subject_dn()
const;
152 std::vector<uint8_t> raw_subject_dn_sha256()
const;
158 std::string BOTAN_DEPRECATED(
"Use not_before().to_string()") start_time()
const 160 return not_before().to_string();
167 std::string BOTAN_DEPRECATED(
"Use not_after().to_string()") end_time()
const 169 return not_after().to_string();
188 uint32_t x509_version()
const;
194 const std::vector<uint8_t>& serial_number()
const;
200 bool is_serial_negative()
const;
206 const std::vector<uint8_t>& authority_key_id()
const;
212 const std::vector<uint8_t>& subject_key_id()
const;
219 bool is_self_signed()
const;
225 bool is_CA_cert()
const;
241 bool allowed_extended_usage(
const std::string& usage)
const;
249 bool allowed_extended_usage(
const OID& usage)
const;
269 bool BOTAN_DEPRECATED(
"Use version taking an OID")
270 has_ex_constraint(const
std::
string& ex_constraint) const;
276 bool has_ex_constraint(const
OID& ex_constraint) const;
283 uint32_t path_limit() const;
289 bool is_critical(const
std::
string& ex_name) const;
304 BOTAN_DEPRECATED("Use extended_key_usage") ex_constraints() const;
311 const
std::vector<
OID>& extended_key_usage() const;
325 std::vector<
std::
string> BOTAN_DEPRECATED("Use certificate_policy_oids") policies() const;
327 const
std::vector<
OID>& certificate_policy_oids() const;
339 const
std::vector<uint8_t>& v2_issuer_key_id() const;
345 const
std::vector<uint8_t>& v2_subject_key_id() const;
360 std::
string ocsp_responder() const;
365 std::vector<
std::
string> ca_issuers() const;
370 std::
string crl_distribution_point() const;
381 std::
string fingerprint(const
std::
string& hash_name = "SHA-1") const;
388 bool matches_dns_name(const
std::
string&
name) const;
410 #if defined(BOTAN_TARGET_OS_HAS_FILESYSTEM) 443 std::string PEM_label()
const override;
445 std::vector<std::string> alternate_PEM_labels()
const override;
447 void force_decode()
override;
449 const X509_Certificate_Data& data()
const;
451 std::shared_ptr<X509_Certificate_Data> m_data;
461 BOTAN_PUBLIC_API(2,0) bool operator!=(const X509_Certificate& cert1, const X509_Certificate& cert2);
#define BOTAN_PUBLIC_API(maj, min)
Public_Key * subject_public_key() const
std::string to_string(ErrorType type)
Convert an ErrorType to string.