Botan 3.9.0
Crypto and TLS for C&
Botan::TLS::Signature_Algorithms_Cert Class Referencefinal

#include <tls_extensions.h>

Inheritance diagram for Botan::TLS::Signature_Algorithms_Cert:
Botan::TLS::Extension

Public Member Functions

bool empty () const override
virtual bool is_implemented () const
std::vector< uint8_t > serialize (Connection_Side whoami) const override
 Signature_Algorithms_Cert (std::vector< Signature_Scheme > schemes)
 Signature_Algorithms_Cert (TLS_Data_Reader &reader, uint16_t extension_size)
const std::vector< Signature_Scheme > & supported_schemes () const
Extension_Code type () const override

Static Public Member Functions

static Extension_Code static_type ()

Detailed Description

Signature_Algorithms_Cert for TLS 1.3 (RFC 8446)

RFC 8446 4.2.3 TLS 1.3 provides two extensions for indicating which signature algorithms may be used in digital signatures. The "signature_algorithms_cert" extension applies to signatures in certificates, and the "signature_algorithms" extension, which originally appeared in TLS 1.2, applies to signatures in CertificateVerify messages.

RFC 8446 4.2.3 TLS 1.2 implementations SHOULD also process this extension.

Definition at line 411 of file tls_extensions.h.

Constructor & Destructor Documentation

◆ Signature_Algorithms_Cert() [1/2]

Botan::TLS::Signature_Algorithms_Cert::Signature_Algorithms_Cert ( std::vector< Signature_Scheme > schemes)
inlineexplicit

Definition at line 423 of file tls_extensions.h.

423: m_schemes(std::move(schemes)) {}

◆ Signature_Algorithms_Cert() [2/2]

Botan::TLS::Signature_Algorithms_Cert::Signature_Algorithms_Cert ( TLS_Data_Reader & reader,
uint16_t extension_size )

Definition at line 662 of file tls_extensions.cpp.

662 :
663 m_schemes(parse_signature_algorithms(reader, extension_size)) {}

Member Function Documentation

◆ empty()

bool Botan::TLS::Signature_Algorithms_Cert::empty ( ) const
inlineoverridevirtual
Returns
if we should encode this extension or not

Implements Botan::TLS::Extension.

Definition at line 421 of file tls_extensions.h.

421{ return m_schemes.empty(); }

◆ is_implemented()

virtual bool Botan::TLS::Extension::is_implemented ( ) const
inlinevirtualinherited
Returns
true if this extension is known and implemented by Botan

Reimplemented in Botan::TLS::Unknown_Extension.

Definition at line 115 of file tls_extensions.h.

115{ return true; }

◆ serialize()

std::vector< uint8_t > Botan::TLS::Signature_Algorithms_Cert::serialize ( Connection_Side whoami) const
overridevirtual
Returns
serialized binary for the extension

Implements Botan::TLS::Extension.

Definition at line 658 of file tls_extensions.cpp.

658 {
659 return serialize_signature_algorithms(m_schemes);
660}

◆ static_type()

Extension_Code Botan::TLS::Signature_Algorithms_Cert::static_type ( )
inlinestatic

Definition at line 413 of file tls_extensions.h.

References Botan::TLS::CertSignatureAlgorithms.

Referenced by type().

◆ supported_schemes()

const std::vector< Signature_Scheme > & Botan::TLS::Signature_Algorithms_Cert::supported_schemes ( ) const
inline

Definition at line 417 of file tls_extensions.h.

417{ return m_schemes; }

◆ type()

Extension_Code Botan::TLS::Signature_Algorithms_Cert::type ( ) const
inlineoverridevirtual
Returns
code number of the extension

Implements Botan::TLS::Extension.

Definition at line 415 of file tls_extensions.h.

415{ return static_type(); }

References static_type().


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