8#ifndef BOTAN_X509_OBJECT_H_
9#define BOTAN_X509_OBJECT_H_
11#include <botan/asn1_obj.h>
12#include <botan/pkix_enums.h>
36 std::vector<uint8_t>
tbs_data()
const;
41 const std::vector<uint8_t>&
signature()
const;
64 std::span<const uint8_t> tbs);
114 static std::unique_ptr<PK_Signer> choose_sig_format(
const Private_Key& key,
116 std::string_view hash_fn,
117 std::string_view padding_algo);
128 virtual void force_decode() = 0;
130 class Signed_Data final {
133 std::vector<uint8_t> m_tbs_bits;
134 std::vector<uint8_t> m_sig;
137 std::shared_ptr<const Signed_Data> m_signed_data;
#define BOTAN_PUBLIC_API(maj, min)
const std::vector< uint8_t > & signed_body() const
void decode_from(BER_Decoder &from) override
std::string PEM_encode() const
const AlgorithmIdentifier & signature_algorithm() const
virtual std::vector< std::string > alternate_PEM_labels() const
std::vector< uint8_t > tbs_data() const
const std::vector< uint8_t > & signature() const
static std::vector< uint8_t > make_signed(PK_Signer &signer, RandomNumberGenerator &rng, const AlgorithmIdentifier &alg_id, std::span< const uint8_t > tbs)
void encode_into(DER_Encoder &to) const override
std::pair< Certificate_Status_Code, std::string > verify_signature(const Public_Key &key) const
void load_data(DataSource &src)
virtual std::string PEM_label() const =0
bool check_signature(const Public_Key &key) const