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

#include <x509_ext.h>

Inheritance diagram for Botan::Cert_Extension::Subject_Key_ID:
Botan::Certificate_Extension

Public Member Functions

std::unique_ptr< Certificate_Extensioncopy () const override
const std::vector< uint8_t > & get_key_id () const
OID oid_of () const override
 Subject_Key_ID ()=default
 Subject_Key_ID (const std::vector< uint8_t > &k)
 Subject_Key_ID (const std::vector< uint8_t > &public_key, std::string_view hash_fn)
virtual 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)

Static Public Member Functions

static OID static_oid ()

Detailed Description

Subject Key Identifier Extension

Definition at line 102 of file x509_ext.h.

Constructor & Destructor Documentation

◆ Subject_Key_ID() [1/3]

Botan::Cert_Extension::Subject_Key_ID::Subject_Key_ID ( )
default

◆ Subject_Key_ID() [2/3]

Botan::Cert_Extension::Subject_Key_ID::Subject_Key_ID ( const std::vector< uint8_t > & k)
inlineexplicit

Definition at line 106 of file x509_ext.h.

106: m_key_id(k) {}

◆ Subject_Key_ID() [3/3]

Botan::Cert_Extension::Subject_Key_ID::Subject_Key_ID ( const std::vector< uint8_t > & public_key,
std::string_view hash_fn )

Definition at line 417 of file x509_ext.cpp.

417 {
418 auto hash = HashFunction::create_or_throw(hash_name);
419
420 m_key_id.resize(hash->output_length());
421
422 hash->update(pub_key);
423 hash->final(m_key_id.data());
424
425 // Truncate longer hashes, 192 bits here seems plenty
426 const size_t max_skid_len = (192 / 8);
427 if(m_key_id.size() > max_skid_len) {
428 m_key_id.resize(max_skid_len);
429 }
430}
static std::unique_ptr< HashFunction > create_or_throw(std::string_view algo_spec, std::string_view provider="")
Definition hash.cpp:298

References Botan::HashFunction::create_or_throw().

Member Function Documentation

◆ copy()

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

Make a copy of this extension

Returns
copy of this

Implements Botan::Certificate_Extension.

Definition at line 110 of file x509_ext.h.

110 {
111 return std::make_unique<Subject_Key_ID>(m_key_id);
112 }

◆ get_key_id()

const std::vector< uint8_t > & Botan::Cert_Extension::Subject_Key_ID::get_key_id ( ) const
inline

Definition at line 114 of file x509_ext.h.

114{ return m_key_id; }

◆ oid_of()

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

Implements Botan::Certificate_Extension.

Definition at line 118 of file x509_ext.h.

118{ return static_oid(); }

References static_oid().

◆ static_oid()

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

Definition at line 116 of file x509_ext.h.

116{ return OID({2, 5, 29, 14}); }

Referenced by oid_of().

◆ validate()

void Botan::Certificate_Extension::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 )
virtualinherited

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