Botan 3.13.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) const override

Detailed Description

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

Definition at line 1278 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 1280 of file x509_ext.h.

1280 :
1281 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 1283 of file x509_ext.h.

1283 {
1284 return std::make_unique<Unknown_Extension>(*this);
1285 }

◆ extension_contents()

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

Return the extension contents

Definition at line 1297 of file x509_ext.h.

1297{ 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 1308 of file x509_ext.h.

1308{ 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 1302 of file x509_ext.h.

1302{ 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 1290 of file x509_ext.h.

1290{ return m_oid; }

◆ validate()

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

Callback visited during path validation.

An extension can implement this callback to inspect the path during path validation.

If an error occurs during validation of this extension, an appropriate status code shall be added to cert_status.

Parameters
subjectSubject certificate that contains this extension
issuerIssuer certificate. nullopt for certificates with no available issuer (e.g. non self-signed trust anchors).
cert_pathCertificate path which is currently validated
cert_statusCertificate validation status codes for subject certificate
posPosition of subject certificate in cert_path

Reimplemented from Botan::Certificate_Extension.

Definition at line 1310 of file x509_ext.h.

1314 {
1315 if(m_failed_to_decode) {
1316 cert_status.at(pos).insert(Certificate_Status_Code::EXTENSION_ENCODING_ERROR);
1317 } else if(m_critical) {
1318 cert_status.at(pos).insert(Certificate_Status_Code::UNKNOWN_CRITICAL_EXTENSION);
1319 }
1320 }

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


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