Botan 3.13.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 309 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 321 of file tls_extensions.h.

321: 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 745 of file tls_extensions.cpp.

745 :
746 m_schemes(parse_signature_algorithms(reader, extension_size)) {}

Member Function Documentation

◆ empty()

bool Botan::TLS::Signature_Algorithms_Cert::empty ( ) const
inlineoverridevirtual

Predicate if a TLS extension should be included or not

Returns
true if this extension should be encoded, otherwise false

Implements Botan::TLS::Extension.

Definition at line 319 of file tls_extensions.h.

319{ return m_schemes.empty(); }

◆ is_implemented()

virtual bool Botan::TLS::Extension::is_implemented ( ) const
inlinevirtualinherited

Predicate if the extension is known/implemented

Note
this exists primarily to support unknown extension handling and doesn't need to be overridden even in the custom extension case.
Returns
true if this extension is known

Reimplemented in Botan::TLS::Unknown_Extension.

Definition at line 113 of file tls_extensions.h.

113{ return true; }

◆ serialize()

std::vector< uint8_t > Botan::TLS::Signature_Algorithms_Cert::serialize ( Connection_Side whoami) const
overridevirtual

Serialize a TLS extension

Parameters
whoamiwhich peer we are acting as in the protocol
Returns
serialized binary for the extension

Implements Botan::TLS::Extension.

Definition at line 741 of file tls_extensions.cpp.

741 {
742 return serialize_signature_algorithms(m_schemes);
743}

◆ static_type()

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

Definition at line 311 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 315 of file tls_extensions.h.

315{ return m_schemes; }

◆ type()

Extension_Code Botan::TLS::Signature_Algorithms_Cert::type ( ) const
inlineoverridevirtual

Return TLS extension code

Returns
code number of the extension

Implements Botan::TLS::Extension.

Definition at line 313 of file tls_extensions.h.

313{ return static_type(); }

References static_type().


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