Botan 3.13.0
Crypto and TLS for C&
Botan::Certificate_Extension Class Referenceabstract

#include <pkix_types.h>

Inheritance diagram for Botan::Certificate_Extension:
Botan::Cert_Extension::ASBlocks Botan::Cert_Extension::Authority_Information_Access Botan::Cert_Extension::Authority_Key_ID Botan::Cert_Extension::Basic_Constraints Botan::Cert_Extension::CRL_Distribution_Points Botan::Cert_Extension::CRL_Issuing_Distribution_Point Botan::Cert_Extension::CRL_Number Botan::Cert_Extension::CRL_ReasonCode Botan::Cert_Extension::Certificate_Policies Botan::Cert_Extension::Extended_Key_Usage Botan::Cert_Extension::IPAddressBlocks Botan::Cert_Extension::Issuer_Alternative_Name Botan::Cert_Extension::Key_Usage Botan::Cert_Extension::Name_Constraints Botan::Cert_Extension::NoRevocationAvailable Botan::Cert_Extension::OCSP_NoCheck Botan::Cert_Extension::Subject_Alternative_Name Botan::Cert_Extension::Subject_Key_ID Botan::Cert_Extension::TNAuthList Botan::Cert_Extension::Unknown_Extension

Public Member Functions

virtual std::unique_ptr< Certificate_Extensioncopy () const =0
virtual bool is_appropriate_context (Extension_Context context) const =0
virtual std::string oid_name () const =0
virtual OID oid_of () const =0
virtual void 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
virtual ~Certificate_Extension ()=default

Protected Member Functions

virtual void decode_inner (const std::vector< uint8_t > &)=0
virtual std::vector< uint8_t > encode_inner () const =0
virtual bool should_encode () const

Friends

class Extensions

Detailed Description

X.509 Certificate Extension

Definition at line 802 of file pkix_types.h.

Constructor & Destructor Documentation

◆ ~Certificate_Extension()

virtual Botan::Certificate_Extension::~Certificate_Extension ( )
virtualdefault

Member Function Documentation

◆ copy()

◆ decode_inner()

virtual void Botan::Certificate_Extension::decode_inner ( const std::vector< uint8_t > & )
protectedpure virtual

◆ encode_inner()

virtual std::vector< uint8_t > Botan::Certificate_Extension::encode_inner ( ) const
protectedpure virtual

◆ is_appropriate_context()

virtual bool Botan::Certificate_Extension::is_appropriate_context ( Extension_Context context) const
pure virtual

Query if

Parameters
contextis an appropriate context for this extension to exist

Many extensions are used across different types of X509 objects but some are specific, this allows decoding to reject extensions in an inappropriate context.

References validate().

◆ oid_name()

virtual std::string Botan::Certificate_Extension::oid_name ( ) const
pure virtual

Return string identifier for this extension

If possible the OID table should match oid_name, ie OID::from_string(ext->oid_name()) == ext->oid_of()

Returns
specific OID name, or empty if unknown

◆ oid_of()

◆ should_encode()

virtual bool Botan::Certificate_Extension::should_encode ( ) const
inlineprotectedvirtual

Definition at line 863 of file pkix_types.h.

863{ return true; }

◆ validate()

void Botan::Certificate_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
virtual

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 in Botan::Cert_Extension::ASBlocks, Botan::Cert_Extension::Certificate_Policies, Botan::Cert_Extension::IPAddressBlocks, Botan::Cert_Extension::Name_Constraints, Botan::Cert_Extension::NoRevocationAvailable, Botan::Cert_Extension::OCSP_NoCheck, and Botan::Cert_Extension::Unknown_Extension.

Definition at line 181 of file x509_ext.cpp.

185 {}

Referenced by is_appropriate_context().

◆ Extensions

friend class Extensions
friend

Definition at line 861 of file pkix_types.h.

References Extensions.

Referenced by Extensions, and Botan::Cert_Extension::NoRevocationAvailable::validate().


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