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; }
52 std::string hash_used_for_signature()
const;
62 static std::vector<uint8_t> make_signed(
class PK_Signer* signer,
80 bool check_signature(
const Public_Key& key)
const;
89 bool check_signature(
const Public_Key* key)
const;
95 void encode_into(
class DER_Encoder& to)
const override;
101 void decode_from(
class BER_Decoder& from)
override;
106 std::string PEM_encode()
const;
114 {
return std::vector<std::string>(); }
118 static std::unique_ptr<PK_Signer>
122 const std::string& hash_fn,
123 const std::string& padding_algo);
135 virtual void force_decode() = 0;
138 std::vector<uint8_t> m_tbs_bits;
139 std::vector<uint8_t> m_sig;
const std::vector< uint8_t > & signed_body() const
const AlgorithmIdentifier & signature_algorithm() const
virtual ~X509_Object()=default
virtual std::vector< std::string > alternate_PEM_labels() const
const std::vector< uint8_t > & signature() const
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)
PK_Signer * choose_sig_format(const Private_Key &key, RandomNumberGenerator &rng, const std::string &hash_fn, AlgorithmIdentifier &sig_algo)
std::vector< T, secure_allocator< T > > secure_vector