Botan 3.9.0
Crypto and TLS for C&
Botan::Cert_Extension::Certificate_Policies Class Referencefinal

#include <x509_ext.h>

Inheritance diagram for Botan::Cert_Extension::Certificate_Policies:
Botan::Certificate_Extension

Public Member Functions

 Certificate_Policies ()=default
 Certificate_Policies (const std::vector< OID > &o)
std::unique_ptr< Certificate_Extensioncopy () const override
const std::vector< OID > & get_policy_oids () const
OID oid_of () const override
void validate (const X509_Certificate &subject, const X509_Certificate &issuer, const std::vector< X509_Certificate > &cert_path, std::vector< std::set< Certificate_Status_Code > > &cert_status, size_t pos) override

Static Public Member Functions

static OID static_oid ()

Detailed Description

Certificate Policies Extension

Definition at line 286 of file x509_ext.h.

Constructor & Destructor Documentation

◆ Certificate_Policies() [1/2]

Botan::Cert_Extension::Certificate_Policies::Certificate_Policies ( )
default

◆ Certificate_Policies() [2/2]

Botan::Cert_Extension::Certificate_Policies::Certificate_Policies ( const std::vector< OID > & o)
inlineexplicit

Definition at line 294 of file x509_ext.h.

294: m_oids(o) {}

Member Function Documentation

◆ copy()

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

Make a copy of this extension

Returns
copy of this

Implements Botan::Certificate_Extension.

Definition at line 288 of file x509_ext.h.

288 {
289 return std::make_unique<Certificate_Policies>(m_oids);
290 }

◆ get_policy_oids()

const std::vector< OID > & Botan::Cert_Extension::Certificate_Policies::get_policy_oids ( ) const
inline

Definition at line 296 of file x509_ext.h.

296{ return m_oids; }

◆ oid_of()

OID Botan::Cert_Extension::Certificate_Policies::oid_of ( ) const
inlineoverridevirtual
Returns
OID representing this extension

Implements Botan::Certificate_Extension.

Definition at line 300 of file x509_ext.h.

300{ return static_oid(); }

References static_oid().

◆ static_oid()

OID Botan::Cert_Extension::Certificate_Policies::static_oid ( )
inlinestatic

Definition at line 298 of file x509_ext.h.

298{ return OID({2, 5, 29, 32}); }

Referenced by oid_of().

◆ validate()

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

Reimplemented from Botan::Certificate_Extension.

Definition at line 619 of file x509_ext.cpp.

623 {
624 std::set<OID> oid_set(m_oids.begin(), m_oids.end());
625 if(oid_set.size() != m_oids.size()) {
626 cert_status.at(pos).insert(Certificate_Status_Code::DUPLICATE_CERT_POLICY);
627 }
628}

References Botan::DUPLICATE_CERT_POLICY.


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