Botan 3.13.0
Crypto and TLS for C&
Botan::Cert_Extension::CRL_Issuing_Distribution_Point Class Referencefinal

#include <x509_ext.h>

Inheritance diagram for Botan::Cert_Extension::CRL_Issuing_Distribution_Point:
Botan::Certificate_Extension

Public Member Functions

std::unique_ptr< Certificate_Extensioncopy () const override
 CRL_Issuing_Distribution_Point ()=default
 CRL_Issuing_Distribution_Point (const CRL_Distribution_Points::Distribution_Point &distribution_point)
 CRL_Issuing_Distribution_Point (DistributionPointName dp_name)
 CRL_Issuing_Distribution_Point (std::optional< DistributionPointName > dp_name, bool only_contains_user_certs, bool only_contains_ca_certs, std::optional< ReasonFlags > only_some_reasons, bool indirect_crl, bool only_contains_attribute_certs)
const std::optional< DistributionPointName > & distribution_point_name () const
const AlternativeNameget_point () const
bool indirect_crl () const
OID oid_of () const override
bool only_contains_attribute_certs () const
bool only_contains_ca_certs () const
bool only_contains_user_certs () const
const std::optional< ReasonFlags > & only_some_reasons () const
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

Static Public Member Functions

static OID static_oid ()

Detailed Description

CRL Issuing Distribution Point Extension (RFC 5280 5.2.5)

IssuingDistributionPoint ::= SEQUENCE {
     distributionPoint          [0] DistributionPointName OPTIONAL,
     onlyContainsUserCerts      [1] BOOLEAN DEFAULT FALSE,
     onlyContainsCACerts        [2] BOOLEAN DEFAULT FALSE,
     onlySomeReasons            [3] ReasonFlags OPTIONAL,
     indirectCRL                [4] BOOLEAN DEFAULT FALSE,
     onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }

Definition at line 691 of file x509_ext.h.

Constructor & Destructor Documentation

◆ CRL_Issuing_Distribution_Point() [1/4]

Botan::Cert_Extension::CRL_Issuing_Distribution_Point::CRL_Issuing_Distribution_Point ( )
default

◆ CRL_Issuing_Distribution_Point() [2/4]

Botan::Cert_Extension::CRL_Issuing_Distribution_Point::CRL_Issuing_Distribution_Point ( DistributionPointName dp_name)
inlineexplicit

Definition at line 695 of file x509_ext.h.

695: m_dp_name(std::move(dp_name)) {}

◆ CRL_Issuing_Distribution_Point() [3/4]

Botan::Cert_Extension::CRL_Issuing_Distribution_Point::CRL_Issuing_Distribution_Point ( std::optional< DistributionPointName > dp_name,
bool only_contains_user_certs,
bool only_contains_ca_certs,
std::optional< ReasonFlags > only_some_reasons,
bool indirect_crl,
bool only_contains_attribute_certs )
inline

Definition at line 697 of file x509_ext.h.

702 :
703 m_dp_name(std::move(dp_name)),
704 m_only_contains_user_certs(only_contains_user_certs),
705 m_only_contains_ca_certs(only_contains_ca_certs),
706 m_only_some_reasons(only_some_reasons),
707 m_indirect_crl(indirect_crl),
708 m_only_contains_attribute_certs(only_contains_attribute_certs) {}
const std::optional< ReasonFlags > & only_some_reasons() const
Definition x509_ext.h:731

References indirect_crl(), only_contains_attribute_certs(), only_contains_ca_certs(), only_contains_user_certs(), and only_some_reasons().

◆ CRL_Issuing_Distribution_Point() [4/4]

Botan::Cert_Extension::CRL_Issuing_Distribution_Point::CRL_Issuing_Distribution_Point ( const CRL_Distribution_Points::Distribution_Point & distribution_point)
inlineexplicit

Deprecated compatibility shim for the pre-3.13 API. Extracts the DistributionPointName from a cert-side Distribution_Point.

Definition at line 715 of file x509_ext.h.

715 :
716 m_dp_name(distribution_point.distribution_point_name()) {}

References CRL_Issuing_Distribution_Point(), and distribution_point_name().

Member Function Documentation

◆ copy()

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

Make a copy of this extension

Returns
copy of this

Implements Botan::Certificate_Extension.

Definition at line 718 of file x509_ext.h.

718 {
719 return std::make_unique<CRL_Issuing_Distribution_Point>(*this);
720 }

◆ distribution_point_name()

const std::optional< DistributionPointName > & Botan::Cert_Extension::CRL_Issuing_Distribution_Point::distribution_point_name ( ) const
inline

distributionPoint [0] DistributionPointName OPTIONAL.

Definition at line 725 of file x509_ext.h.

725{ return m_dp_name; }

Referenced by CRL_Issuing_Distribution_Point().

◆ get_point()

const AlternativeName & Botan::Cert_Extension::CRL_Issuing_Distribution_Point::get_point ( ) const

Deprecated compatibility shim for the pre-3.13 API. Returns the fullName GeneralNames; raises Invalid_State if the distributionPoint field is absent or its CHOICE arm is nameRelativeToCRLIssuer.

Definition at line 1340 of file x509_ext.cpp.

1340 {
1341 BOTAN_STATE_CHECK(m_dp_name.has_value() && m_dp_name->full_name().has_value());
1342 return *m_dp_name->full_name();
1343}
#define BOTAN_STATE_CHECK(expr)
Definition assert.h:49

References BOTAN_STATE_CHECK.

◆ indirect_crl()

bool Botan::Cert_Extension::CRL_Issuing_Distribution_Point::indirect_crl ( ) const
inline

Definition at line 733 of file x509_ext.h.

733{ return m_indirect_crl; }

Referenced by CRL_Issuing_Distribution_Point().

◆ oid_of()

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

Return object identifier for this extension

Returns
OID representing this extension

Implements Botan::Certificate_Extension.

Definition at line 746 of file x509_ext.h.

References static_oid().

◆ only_contains_attribute_certs()

bool Botan::Cert_Extension::CRL_Issuing_Distribution_Point::only_contains_attribute_certs ( ) const
inline

Definition at line 735 of file x509_ext.h.

735{ return m_only_contains_attribute_certs; }

Referenced by CRL_Issuing_Distribution_Point().

◆ only_contains_ca_certs()

bool Botan::Cert_Extension::CRL_Issuing_Distribution_Point::only_contains_ca_certs ( ) const
inline

Definition at line 729 of file x509_ext.h.

729{ return m_only_contains_ca_certs; }

Referenced by CRL_Issuing_Distribution_Point().

◆ only_contains_user_certs()

bool Botan::Cert_Extension::CRL_Issuing_Distribution_Point::only_contains_user_certs ( ) const
inline

Definition at line 727 of file x509_ext.h.

727{ return m_only_contains_user_certs; }

Referenced by CRL_Issuing_Distribution_Point().

◆ only_some_reasons()

const std::optional< ReasonFlags > & Botan::Cert_Extension::CRL_Issuing_Distribution_Point::only_some_reasons ( ) const
inline

Definition at line 731 of file x509_ext.h.

731{ return m_only_some_reasons; }

Referenced by CRL_Issuing_Distribution_Point().

◆ static_oid()

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

Definition at line 744 of file x509_ext.h.

744{ return OID({2, 5, 29, 28}); }

References static_oid().

Referenced by oid_of(), and static_oid().

◆ 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
virtualinherited

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().


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