Botan 3.0.0-alpha0
Crypto and TLS for C&
|
#include <tls_messages.h>
Classes | |
class | Settings |
Public Member Functions | |
const std::vector< uint16_t > & | ciphersuites () const |
Client_Hello_12 (const std::vector< uint8_t > &buf) | |
Client_Hello_12 (Handshake_IO &io, Handshake_Hash &hash, const Policy &policy, Callbacks &cb, RandomNumberGenerator &rng, const std::vector< uint8_t > &reneg_info, const Session &session, const std::vector< std::string > &next_protocols) | |
Client_Hello_12 (Handshake_IO &io, Handshake_Hash &hash, const Policy &policy, Callbacks &cb, RandomNumberGenerator &rng, const std::vector< uint8_t > &reneg_info, const Settings &client_settings, const std::vector< std::string > &next_protocols) | |
const std::vector< uint8_t > & | compression_methods () const |
const std::vector< uint8_t > & | cookie () const |
std::vector< uint8_t > | cookie_input_data () const |
std::set< Handshake_Extension_Type > | extension_types () const |
const Extensions & | extensions () const |
Protocol_Version | legacy_version () const |
std::vector< std::string > | next_protocols () const |
bool | offered_suite (uint16_t ciphersuite) const |
bool | prefers_compressed_ec_points () const |
const std::vector< uint8_t > & | random () const |
std::vector< uint8_t > | renegotiation_info () const |
bool | secure_renegotiation () const |
bool | sent_signature_algorithms () const |
std::vector< uint8_t > | serialize () const override |
const std::vector< uint8_t > & | session_id () const |
std::vector< uint8_t > | session_ticket () const |
std::vector< Signature_Scheme > | signature_schemes () const |
std::string | sni_hostname () const |
std::vector< uint16_t > | srtp_profiles () const |
std::vector< Group_Params > | supported_dh_groups () const |
std::vector< Group_Params > | supported_ecc_curves () const |
std::vector< Protocol_Version > | supported_versions () const |
bool | supports_alpn () const |
bool | supports_cert_status_message () const |
bool | supports_encrypt_then_mac () const |
bool | supports_extended_master_secret () const |
bool | supports_session_ticket () const |
Handshake_Type | type () const override |
std::string | type_string () const |
void | update_hello_cookie (const Hello_Verify_Request &hello_verify) |
virtual Handshake_Type | wire_type () const |
Protected Attributes | |
std::vector< uint8_t > | m_comp_methods |
std::vector< uint8_t > | m_cookie_input_bits |
Extensions | m_extensions |
std::vector< uint8_t > | m_hello_cookie |
Protocol_Version | m_legacy_version |
std::vector< uint8_t > | m_random |
std::vector< uint8_t > | m_session_id |
std::vector< uint16_t > | m_suites |
Definition at line 150 of file tls_messages.h.
|
inlineexplicit |
Definition at line 170 of file tls_messages.h.
Botan::TLS::Client_Hello_12::Client_Hello_12 | ( | Handshake_IO & | io, |
Handshake_Hash & | hash, | ||
const Policy & | policy, | ||
Callbacks & | cb, | ||
RandomNumberGenerator & | rng, | ||
const std::vector< uint8_t > & | reneg_info, | ||
const Settings & | client_settings, | ||
const std::vector< std::string > & | next_protocols | ||
) |
Definition at line 361 of file msg_client_hello.cpp.
References Botan::TLS::Policy::acceptable_protocol_version(), Botan::TLS::Policy::acceptable_signature_schemes(), Botan::TLS::Extensions::add(), Botan::TLS::Policy::ciphersuite_list(), Botan::TLS::CLIENT, hash, Botan::TLS::Client_Hello_12::Settings::hostname(), Botan::TLS::Protocol_Version::is_datagram_protocol(), Botan::TLS::Policy::key_exchange_groups(), Botan::TLS::Client_Hello::m_extensions, Botan::TLS::Client_Hello::m_legacy_version, Botan::TLS::Client_Hello::m_random, Botan::TLS::Client_Hello::m_suites, Botan::TLS::make_hello_random(), Botan::TLS::Policy::negotiate_encrypt_then_mac(), Botan::TLS::Client_Hello::next_protocols(), Botan::TLS::Client_Hello_12::Settings::protocol_version(), Botan::TLS::Handshake_IO::send(), Botan::TLS::Policy::srtp_profiles(), Botan::TLS::Policy::support_cert_status_message(), Botan::TLS::Callbacks::tls_modify_extensions(), Botan::TLS::Protocol_Version::to_string(), and Botan::TLS::Policy::use_ecc_point_compression().
Botan::TLS::Client_Hello_12::Client_Hello_12 | ( | Handshake_IO & | io, |
Handshake_Hash & | hash, | ||
const Policy & | policy, | ||
Callbacks & | cb, | ||
RandomNumberGenerator & | rng, | ||
const std::vector< uint8_t > & | reneg_info, | ||
const Session & | session, | ||
const std::vector< std::string > & | next_protocols | ||
) |
Definition at line 424 of file msg_client_hello.cpp.
References Botan::TLS::Policy::acceptable_protocol_version(), Botan::TLS::Policy::acceptable_signature_schemes(), Botan::TLS::Extensions::add(), Botan::TLS::Session::ciphersuite_code(), Botan::TLS::Policy::ciphersuite_list(), Botan::TLS::CLIENT, hash, Botan::TLS::Server_Information::hostname(), Botan::TLS::Policy::key_exchange_groups(), Botan::TLS::Client_Hello::m_extensions, Botan::TLS::Client_Hello::m_legacy_version, Botan::TLS::Client_Hello::m_random, Botan::TLS::Client_Hello::m_session_id, Botan::TLS::Client_Hello::m_suites, Botan::TLS::make_hello_random(), Botan::TLS::Client_Hello::next_protocols(), Botan::TLS::Handshake_IO::send(), Botan::TLS::Session::server_info(), Botan::TLS::Session::session_id(), Botan::TLS::Session::session_ticket(), Botan::TLS::Policy::support_cert_status_message(), Botan::TLS::Session::supports_encrypt_then_mac(), Botan::TLS::Callbacks::tls_modify_extensions(), Botan::TLS::Protocol_Version::to_string(), Botan::TLS::Policy::use_ecc_point_compression(), Botan::value_exists(), and Botan::TLS::Session::version().
|
inherited |
Definition at line 148 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_suites.
const std::vector< uint8_t > & Botan::TLS::Client_Hello::compression_methods | ( | ) | const |
Definition at line 136 of file msg_client_hello.cpp.
|
inherited |
Definition at line 329 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_hello_cookie.
|
inherited |
Definition at line 201 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_cookie_input_bits.
|
inherited |
Definition at line 153 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::extension_types(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12().
|
inherited |
Definition at line 158 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_extensions.
|
inherited |
Return the version indicated in the ClientHello. This may differ from the version indicated in the supported_versions extension.
See RFC 8446 4.1.2: TLS 1.3, the client indicates its version preferences in the "supported_versions" extension (Section 4.2.1) and the legacy_version field MUST be set to 0x0303, which is the version number for TLS 1.2.
Definition at line 128 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_legacy_version.
|
inherited |
Definition at line 315 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::get(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Client_Hello_12().
|
inherited |
Definition at line 212 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_suites.
bool Botan::TLS::Client_Hello_12::prefers_compressed_ec_points | ( | ) | const |
Definition at line 243 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::get(), and Botan::TLS::Client_Hello::m_extensions.
const std::vector< uint8_t > & Botan::TLS::Client_Hello::random | ( | ) | const |
Definition at line 94 of file msg_client_hello.cpp.
std::vector< uint8_t > Botan::TLS::Client_Hello_12::renegotiation_info | ( | ) | const |
Definition at line 264 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::get(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Channel_Impl_12::secure_renegotiation_check().
bool Botan::TLS::Client_Hello_12::secure_renegotiation | ( | ) | const |
Definition at line 259 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::has(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Channel_Impl_12::secure_renegotiation_check(), and Botan::TLS::Server_Hello_12::Server_Hello_12().
|
inherited |
Definition at line 310 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::has(), and Botan::TLS::Client_Hello::m_extensions.
|
overridevirtualinherited |
Implements Botan::TLS::Handshake_Message.
Definition at line 174 of file msg_client_hello.cpp.
References Botan::TLS::append_tls_length_value(), Botan::TLS::CLIENT, Botan::TLS::Protocol_Version::is_datagram_protocol(), Botan::TLS::Client_Hello::m_comp_methods, Botan::TLS::Client_Hello::m_extensions, Botan::TLS::Client_Hello::m_hello_cookie, Botan::TLS::Client_Hello::m_legacy_version, Botan::TLS::Client_Hello::m_random, Botan::TLS::Client_Hello::m_session_id, Botan::TLS::Client_Hello::m_suites, Botan::TLS::Protocol_Version::major_version(), Botan::TLS::Protocol_Version::minor_version(), and Botan::TLS::Extensions::serialize().
|
inherited |
Definition at line 138 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_session_id.
std::vector< uint8_t > Botan::TLS::Client_Hello_12::session_ticket | ( | ) | const |
Definition at line 283 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::get(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Handshake_State::session_ticket().
|
inherited |
Definition at line 217 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::get(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Handshake_State::choose_sig_format().
|
inherited |
Definition at line 252 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::get(), and Botan::TLS::Client_Hello::m_extensions.
|
inherited |
Definition at line 322 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::get(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12().
|
inherited |
Definition at line 236 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::get(), and Botan::TLS::Client_Hello::m_extensions.
|
inherited |
Definition at line 229 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::get(), and Botan::TLS::Client_Hello::m_extensions.
|
inherited |
Definition at line 271 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::get(), and Botan::TLS::Client_Hello::m_extensions.
|
inherited |
Definition at line 290 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::has(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12().
bool Botan::TLS::Client_Hello_12::supports_cert_status_message | ( | ) | const |
Definition at line 300 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::has(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12().
bool Botan::TLS::Client_Hello_12::supports_encrypt_then_mac | ( | ) | const |
Definition at line 305 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::has(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12().
bool Botan::TLS::Client_Hello_12::supports_extended_master_secret | ( | ) | const |
Definition at line 295 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::has(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12().
bool Botan::TLS::Client_Hello_12::supports_session_ticket | ( | ) | const |
Definition at line 278 of file msg_client_hello.cpp.
References Botan::TLS::Extensions::has(), and Botan::TLS::Client_Hello::m_extensions.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12().
|
overridevirtualinherited |
Implements Botan::TLS::Handshake_Message.
Definition at line 123 of file msg_client_hello.cpp.
References Botan::TLS::CLIENT_HELLO.
|
inherited |
Definition at line 18 of file tls_handshake_state.cpp.
References Botan::TLS::handshake_type_to_string(), and Botan::TLS::Handshake_Message::type().
void Botan::TLS::Client_Hello_12::update_hello_cookie | ( | const Hello_Verify_Request & | hello_verify | ) |
Definition at line 163 of file msg_client_hello.cpp.
References Botan::TLS::Hello_Verify_Request::cookie(), Botan::TLS::Protocol_Version::is_datagram_protocol(), Botan::TLS::Client_Hello::m_hello_cookie, and Botan::TLS::Client_Hello::m_legacy_version.
|
inlinevirtualinherited |
Definition at line 42 of file tls_handshake_msg.h.
References type.
Referenced by Botan::TLS::Stream_Handshake_IO::send().
|
protectedinherited |
Definition at line 143 of file tls_messages.h.
Referenced by Botan::TLS::Client_Hello::compression_methods(), and Botan::TLS::Client_Hello::serialize().
|
protectedinherited |
Definition at line 147 of file tls_messages.h.
Referenced by Botan::TLS::Client_Hello::Client_Hello(), and Botan::TLS::Client_Hello::cookie_input_data().
|
protectedinherited |
Definition at line 144 of file tls_messages.h.
Referenced by Client_Hello_12(), Botan::TLS::Client_Hello::extension_types(), Botan::TLS::Client_Hello::extensions(), Botan::TLS::Client_Hello::next_protocols(), prefers_compressed_ec_points(), renegotiation_info(), secure_renegotiation(), Botan::TLS::Client_Hello::sent_signature_algorithms(), Botan::TLS::Client_Hello::serialize(), session_ticket(), Botan::TLS::Client_Hello::signature_schemes(), Botan::TLS::Client_Hello::sni_hostname(), Botan::TLS::Client_Hello::srtp_profiles(), Botan::TLS::Client_Hello::supported_dh_groups(), Botan::TLS::Client_Hello::supported_ecc_curves(), Botan::TLS::Client_Hello::supported_versions(), Botan::TLS::Client_Hello::supports_alpn(), supports_cert_status_message(), supports_encrypt_then_mac(), supports_extended_master_secret(), and supports_session_ticket().
|
protectedinherited |
Definition at line 146 of file tls_messages.h.
Referenced by Botan::TLS::Client_Hello::Client_Hello(), Botan::TLS::Client_Hello::cookie(), Botan::TLS::Client_Hello::serialize(), and update_hello_cookie().
|
protectedinherited |
Definition at line 139 of file tls_messages.h.
Referenced by Botan::TLS::Client_Hello::Client_Hello(), Client_Hello_12(), Botan::TLS::Client_Hello::legacy_version(), Botan::TLS::Client_Hello::serialize(), and update_hello_cookie().
|
protectedinherited |
Definition at line 141 of file tls_messages.h.
Referenced by Botan::TLS::Client_Hello::Client_Hello(), Client_Hello_12(), Botan::TLS::Client_Hello::random(), and Botan::TLS::Client_Hello::serialize().
|
protectedinherited |
Definition at line 140 of file tls_messages.h.
Referenced by Botan::TLS::Client_Hello::Client_Hello(), Client_Hello_12(), Botan::TLS::Client_Hello::serialize(), and Botan::TLS::Client_Hello::session_id().
|
protectedinherited |
Definition at line 142 of file tls_messages.h.
Referenced by Botan::TLS::Client_Hello::ciphersuites(), Client_Hello_12(), Botan::TLS::Client_Hello::offered_suite(), and Botan::TLS::Client_Hello::serialize().