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 {
return m_sig; }
46 const std::vector<uint8_t>&
signed_body()
const {
return m_tbs_bits; }
61 static std::vector<uint8_t> make_signed(
PK_Signer& signer,
64 std::span<const uint8_t> tbs);
81 bool check_signature(
const Public_Key& key)
const;
98 std::string PEM_encode()
const;
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;
131 std::vector<uint8_t> m_tbs_bits;
132 std::vector<uint8_t> m_sig;
#define BOTAN_PUBLIC_API(maj, min)
const std::vector< uint8_t > & signed_body() 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
void load_data(DataSource &src)
virtual std::string PEM_label() const =0
bool verify_signature(std::span< const uint8_t, ED448_LEN > pk, bool phflag, std::span< const uint8_t > context, std::span< const uint8_t > sig, std::span< const uint8_t > msg)
Verify a signature(RFC 8032 5.2.7).