8#ifndef BOTAN_X509_OBJECT_H_
9#define BOTAN_X509_OBJECT_H_
11#include <botan/asn1_obj.h>
12#include <botan/pkix_enums.h>
19class RandomNumberGenerator;
32 std::vector<uint8_t> tbs_data()
const;
37 const std::vector<uint8_t>&
signature()
const {
return m_sig; }
42 const std::vector<uint8_t>&
signed_body()
const {
return m_tbs_bits; }
57 static std::vector<uint8_t> make_signed(
PK_Signer& signer,
77 bool check_signature(
const Public_Key& key)
const;
94 std::string PEM_encode()
const;
115 static std::unique_ptr<PK_Signer> choose_sig_format(
const Private_Key& key,
117 std::string_view hash_fn,
118 std::string_view padding_algo);
129 virtual void force_decode() = 0;
132 std::vector<uint8_t> m_tbs_bits;
133 std::vector<uint8_t> m_sig;
const std::vector< uint8_t > & signed_body() const
const AlgorithmIdentifier & signature_algorithm() const
virtual std::vector< std::string > alternate_PEM_labels() const
const std::vector< uint8_t > & signature() const
~X509_Object() override=default
virtual std::string PEM_label() const =0
X509_Object & operator=(const X509_Object &)=default
X509_Object(const X509_Object &)=default
#define BOTAN_PUBLIC_API(maj, min)
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)
std::vector< T, secure_allocator< T > > secure_vector