8 #ifndef BOTAN_X509_OBJECT_H_
9 #define BOTAN_X509_OBJECT_H_
11 #include <botan/asn1_obj.h>
12 #include <botan/alg_id.h>
13 #include <botan/cert_status.h>
20 class RandomNumberGenerator;
33 std::vector<uint8_t> tbs_data()
const;
38 const std::vector<uint8_t>&
signature()
const {
return m_sig; }
43 const std::vector<uint8_t>&
signed_body()
const {
return m_tbs_bits; }
53 std::string hash_used_for_signature()
const;
63 static std::vector<uint8_t> make_signed(
class PK_Signer* signer,
81 bool check_signature(
const Public_Key& key)
const;
90 bool check_signature(
const Public_Key* key)
const;
96 void encode_into(
class DER_Encoder& to)
const override;
102 void decode_from(
class BER_Decoder& from)
override;
112 virtual std::string PEM_label()
const = 0;
115 {
return std::vector<std::string>(); }
119 static std::unique_ptr<PK_Signer>
123 const std::string& hash_fn,
124 const std::string& padding_algo);
136 virtual void force_decode() = 0;
139 std::vector<uint8_t> m_tbs_bits;
140 std::vector<uint8_t> m_sig;
const std::vector< uint8_t > & signed_body() const
#define BOTAN_PUBLIC_API(maj, min)
const AlgorithmIdentifier & signature_algorithm() const
virtual std::vector< std::string > alternate_PEM_labels() const
const std::vector< uint8_t > & signature() const
std::vector< T, secure_allocator< T >> secure_vector
std::string PEM_encode(const Private_Key &key)
PK_Signer * choose_sig_format(const Private_Key &key, RandomNumberGenerator &rng, const std::string &hash_fn, AlgorithmIdentifier &sig_algo)