8#include <botan/x509_crl.h> 
   10#include <botan/ber_dec.h> 
   11#include <botan/bigint.h> 
   12#include <botan/der_enc.h> 
   13#include <botan/x509_ext.h> 
   14#include <botan/x509cert.h> 
   18struct CRL_Entry_Data {
 
   19      std::vector<uint8_t> m_serial;
 
   22      Extensions m_extensions;
 
   29   m_data = std::make_shared<CRL_Entry_Data>();
 
   31   m_data->m_time = 
X509_Time(std::chrono::system_clock::now());
 
   32   m_data->m_reason = why;
 
   35      m_data->m_extensions.add(std::make_unique<Cert_Extension::CRL_ReasonCode>(why));
 
 
   77std::vector<uint8_t> decode_serial_number(
const BER_Object& obj) {
 
   80   if(!obj.
data().empty() && obj.
data()[0] == 0x00) {
 
   81      return std::vector<uint8_t>(obj.
data().begin() + 1, obj.
data().end());
 
   82   } 
else if(!obj.
data().empty() && ((obj.
data()[0] & 0x80) == 0x80)) {
 
   83      std::vector<uint8_t> vec(obj.
data().begin(), obj.
data().end());
 
   84      for(
size_t i = vec.size(); i > 0; --i) {
 
   85         bool gt0 = vec[i - 1] > 0;
 
   97      return std::vector<uint8_t>(obj.
data().begin(), obj.
data().end());
 
  107   auto data = std::make_unique<CRL_Entry_Data>();
 
  113   entry.
decode(data->m_time);
 
  116      entry.
decode(data->m_extensions);
 
  118         data->m_reason = ext->get_reason();
 
  126   m_data = std::move(data);
 
 
  129const CRL_Entry_Data& CRL_Entry::data()
 const {
 
  138   return data().m_serial;
 
 
  142   return data().m_time;
 
 
  146   return data().m_reason;
 
 
  150   return data().m_extensions;
 
 
BER_Object get_next_object()
 
BER_Decoder & decode(bool &out)
 
BER_Decoder start_sequence()
 
void assert_is_a(ASN1_Type type_tag, ASN1_Class class_tag, std::string_view descr="object") const
 
std::span< const uint8_t > data() const
 
static BigInt from_bytes(std::span< const uint8_t > bytes)
 
CRL_Code reason_code() const
 
void encode_into(DER_Encoder &to) const override
 
const X509_Time & expire_time() const
 
const std::vector< uint8_t > & serial_number() const
 
void decode_from(BER_Decoder &from) override
 
const Extensions & extensions() const
 
DER_Encoder & start_sequence()
 
DER_Encoder & encode(bool b)
 
const std::vector< uint8_t > & serial_number() const
 
bool operator!=(const AlgorithmIdentifier &a1, const AlgorithmIdentifier &a2)
 
bool operator==(const AlgorithmIdentifier &a1, const AlgorithmIdentifier &a2)