Botan 3.12.0
Crypto and TLS for C&
Botan::Cert_Extension::Unknown_Extension Class Referencefinal

#include <x509_ext.h>

Inheritance diagram for Botan::Cert_Extension::Unknown_Extension:
Botan::Certificate_Extension

Public Member Functions

std::unique_ptr< Certificate_Extensioncopy () const override
const std::vector< uint8_t > & extension_contents () const
bool failed_to_decode () const
bool is_critical_extension () const
OID oid_of () const override
 Unknown_Extension (const OID &oid, bool critical, bool failed_to_decode=false)
void validate (const X509_Certificate &, const std::optional< X509_Certificate > &, const std::vector< X509_Certificate > &, std::vector< std::set< Certificate_Status_Code > > &cert_status, size_t pos) override

Detailed Description

An unknown X.509 extension Will add a failure to the path validation result, if critical

Definition at line 942 of file x509_ext.h.

Constructor & Destructor Documentation

◆ Unknown_Extension()

Botan::Cert_Extension::Unknown_Extension::Unknown_Extension ( const OID & oid,
bool critical,
bool failed_to_decode = false )
inline

Definition at line 944 of file x509_ext.h.

944 :
945 m_oid(oid), m_critical(critical), m_failed_to_decode(failed_to_decode) {}

References failed_to_decode().

Member Function Documentation

◆ copy()

std::unique_ptr< Certificate_Extension > Botan::Cert_Extension::Unknown_Extension::copy ( ) const
inlineoverridevirtual

Make a copy of this extension

Returns
copy of this

Implements Botan::Certificate_Extension.

Definition at line 947 of file x509_ext.h.

947 {
948 return std::make_unique<Unknown_Extension>(m_oid, m_critical, m_failed_to_decode);
949 }

◆ extension_contents()

const std::vector< uint8_t > & Botan::Cert_Extension::Unknown_Extension::extension_contents ( ) const
inline

Return the extension contents

Definition at line 961 of file x509_ext.h.

961{ return m_bytes; }

◆ failed_to_decode()

bool Botan::Cert_Extension::Unknown_Extension::failed_to_decode ( ) const
inline

Return true if this extension's OID was recognized but the contents failed to decode.

Definition at line 972 of file x509_ext.h.

972{ return m_failed_to_decode; }

Referenced by Unknown_Extension().

◆ is_critical_extension()

bool Botan::Cert_Extension::Unknown_Extension::is_critical_extension ( ) const
inline

Return if this extension was marked critical

Definition at line 966 of file x509_ext.h.

966{ return m_critical; }

◆ oid_of()

OID Botan::Cert_Extension::Unknown_Extension::oid_of ( ) const
inlineoverridevirtual

Return the OID of this unknown extension

Implements Botan::Certificate_Extension.

Definition at line 954 of file x509_ext.h.

954{ return m_oid; }

◆ validate()

void Botan::Cert_Extension::Unknown_Extension::validate ( const X509_Certificate & ,
const std::optional< X509_Certificate > & ,
const std::vector< X509_Certificate > & ,
std::vector< std::set< Certificate_Status_Code > > & cert_status,
size_t pos )
inlineoverridevirtual

Reimplemented from Botan::Certificate_Extension.

Definition at line 974 of file x509_ext.h.

978 {
979 if(m_failed_to_decode) {
980 cert_status.at(pos).insert(Certificate_Status_Code::EXTENSION_ENCODING_ERROR);
981 } else if(m_critical) {
982 cert_status.at(pos).insert(Certificate_Status_Code::UNKNOWN_CRITICAL_EXTENSION);
983 }
984 }

References Botan::EXTENSION_ENCODING_ERROR, and Botan::UNKNOWN_CRITICAL_EXTENSION.


The documentation for this class was generated from the following files: