Botan 3.6.1
Crypto and TLS for C&
|
#include <tls_messages.h>
Classes | |
class | Settings |
Public Member Functions | |
std::vector< Signature_Scheme > | certificate_signature_schemes () const |
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_with_Handle &session_and_handle, 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< Extension_Code > | 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 |
std::optional< Session_Handle > | session_handle () const |
const Session_ID & | session_id () const |
Session_Ticket | 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 Member Functions | |
Client_Hello_12 (std::unique_ptr< Client_Hello_Internal > data) | |
Protected Attributes | |
std::unique_ptr< Client_Hello_Internal > | m_data |
Friends | |
class | Client_Hello_13 |
Definition at line 147 of file tls_messages.h.
|
explicit |
Definition at line 474 of file msg_client_hello.cpp.
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 480 of file msg_client_hello.cpp.
References Botan::TLS::Policy::acceptable_certificate_signature_schemes(), Botan::TLS::Policy::acceptable_protocol_version(), Botan::TLS::Policy::acceptable_signature_schemes(), Botan::TLS::Policy::ciphersuite_list(), Botan::TLS::Client, Botan::TLS::Client_Hello_12::Settings::hostname(), Botan::TLS::Client_Hello::m_data, 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::Client_Hello::type(), and Botan::TLS::Handshake_Hash::update().
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_with_Handle & | session_and_handle, | ||
const std::vector< std::string > & | next_protocols ) |
Definition at line 550 of file msg_client_hello.cpp.
References Botan::TLS::Policy::acceptable_certificate_signature_schemes(), Botan::TLS::Policy::acceptable_protocol_version(), Botan::TLS::Policy::acceptable_signature_schemes(), Botan::TLS::Session_Base::ciphersuite_code(), Botan::TLS::Policy::ciphersuite_list(), Botan::TLS::Client, Botan::TLS::Session_with_Handle::handle, Botan::TLS::Server_Information::hostname(), Botan::TLS::Session_Handle::id(), Botan::TLS::Session_Handle::is_ticket(), Botan::TLS::Client_Hello::m_data, Botan::TLS::make_hello_random(), Botan::TLS::Client_Hello::next_protocols(), Botan::TLS::Handshake_IO::send(), Botan::TLS::Session_Base::server_info(), Botan::TLS::Session_with_Handle::session, Botan::TLS::Policy::support_cert_status_message(), Botan::TLS::Session_Base::supports_encrypt_then_mac(), Botan::TLS::Session_Handle::ticket(), Botan::TLS::Callbacks::tls_modify_extensions(), Botan::TLS::Client_Hello::type(), Botan::TLS::Handshake_Hash::update(), Botan::value_exists(), and Botan::TLS::Session_Base::version().
|
protected |
Definition at line 435 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data, and Botan::TLS::Client_Hello::offered_suite().
|
inherited |
Definition at line 270 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data, and Botan::TLS::Client_Hello::signature_schemes().
Referenced by Botan::TLS::Certificate_13::Certificate_13().
|
inherited |
Definition at line 200 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
const std::vector< uint8_t > & Botan::TLS::Client_Hello::compression_methods | ( | ) | const |
Definition at line 141 of file msg_client_hello.cpp.
|
inherited |
Definition at line 387 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
|
inherited |
Definition at line 249 of file msg_client_hello.cpp.
References BOTAN_STATE_CHECK, and Botan::TLS::Client_Hello::m_data.
|
inherited |
Definition at line 204 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12(), and Botan::TLS::Client_Hello_13::validate_updates().
|
inherited |
Definition at line 208 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Certificate_13::Certificate_13(), Botan::TLS::Server_Hello_13::create(), Botan::TLS::Encrypted_Extensions::Encrypted_Extensions(), Botan::TLS::Hello_Retry_Request::Hello_Retry_Request(), Botan::TLS::Server_Hello_13::Server_Hello_13(), and Botan::TLS::Client_Hello_13::validate_updates().
|
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 184 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
|
inherited |
Definition at line 373 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Client_Hello_12(), Client_Hello_12(), and Botan::TLS::Client_Hello_13::Client_Hello_13().
|
inherited |
Definition at line 258 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Client_Hello_12().
bool Botan::TLS::Client_Hello_12::prefers_compressed_ec_points | ( | ) | const |
Definition at line 296 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
const std::vector< uint8_t > & Botan::TLS::Client_Hello::random | ( | ) | const |
Definition at line 99 of file msg_client_hello.cpp.
References Botan::TLS::Protocol_Version::is_datagram_protocol().
std::vector< uint8_t > Botan::TLS::Client_Hello_12::renegotiation_info | ( | ) | const |
Definition at line 314 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Channel_Impl_12::secure_renegotiation_check().
bool Botan::TLS::Client_Hello_12::secure_renegotiation | ( | ) | const |
Definition at line 310 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Channel_Impl_12::secure_renegotiation_check(), and Botan::TLS::Server_Hello_12::Server_Hello_12().
|
inherited |
Definition at line 369 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
|
overridevirtualinherited |
Implements Botan::TLS::Handshake_Message.
Definition at line 221 of file msg_client_hello.cpp.
References Botan::TLS::append_tls_length_value(), Botan::TLS::Client, and Botan::TLS::Client_Hello::m_data.
std::optional< Session_Handle > Botan::TLS::Client_Hello_12::session_handle | ( | ) | const |
Definition at line 339 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::session_id(), and session_ticket().
|
inherited |
Definition at line 192 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by session_handle().
Session_Ticket Botan::TLS::Client_Hello_12::session_ticket | ( | ) | const |
Definition at line 332 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by session_handle(), and Botan::TLS::Handshake_State::session_ticket().
|
inherited |
Definition at line 263 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Certificate_13::Certificate_13(), Botan::TLS::Client_Hello::certificate_signature_schemes(), and Botan::TLS::Handshake_State::choose_sig_format().
|
inherited |
Definition at line 303 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Certificate_13::Certificate_13(), and Botan::TLS::Certificate_Request_13::maybe_create().
|
inherited |
Definition at line 380 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
|
inherited |
Definition at line 289 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
|
inherited |
Definition at line 282 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
|
inherited |
Definition at line 321 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
|
inherited |
Definition at line 353 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12(), and Botan::TLS::Server_Hello_12::Server_Hello_12().
bool Botan::TLS::Client_Hello_12::supports_cert_status_message | ( | ) | const |
Definition at line 361 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12().
bool Botan::TLS::Client_Hello_12::supports_encrypt_then_mac | ( | ) | const |
Definition at line 365 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12(), and Botan::TLS::Server_Hello_12::Server_Hello_12().
bool Botan::TLS::Client_Hello_12::supports_extended_master_secret | ( | ) | const |
Definition at line 357 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12(), and Botan::TLS::Server_Hello_12::Server_Hello_12().
bool Botan::TLS::Client_Hello_12::supports_session_ticket | ( | ) | const |
Definition at line 328 of file msg_client_hello.cpp.
References Botan::TLS::Client_Hello::m_data.
Referenced by Botan::TLS::Server_Hello_12::Server_Hello_12().
|
overridevirtualinherited |
Implements Botan::TLS::Handshake_Message.
Definition at line 180 of file msg_client_hello.cpp.
References Botan::TLS::ClientHello.
Referenced by Client_Hello_12(), Client_Hello_12(), Botan::TLS::Client_Hello_13::Client_Hello_13(), and Botan::TLS::Client_Hello_13::retry().
|
inherited |
Definition at line 19 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 212 of file msg_client_hello.cpp.
References BOTAN_STATE_CHECK, Botan::TLS::Hello_Verify_Request::cookie(), and Botan::TLS::Client_Hello::m_data.
|
inlinevirtualinherited |
Reimplemented in Botan::TLS::Hello_Retry_Request.
Definition at line 39 of file tls_handshake_msg.h.
Referenced by Botan::TLS::Stream_Handshake_IO::send().
|
friend |
Definition at line 185 of file tls_messages.h.
|
protectedinherited |
Definition at line 144 of file tls_messages.h.
Referenced by Botan::TLS::Client_Hello::certificate_signature_schemes(), Botan::TLS::Client_Hello::ciphersuites(), Botan::TLS::Client_Hello::Client_Hello(), Client_Hello_12(), Client_Hello_12(), Client_Hello_12(), Botan::TLS::Client_Hello_13::Client_Hello_13(), Botan::TLS::Client_Hello::compression_methods(), Botan::TLS::Client_Hello::cookie(), Botan::TLS::Client_Hello::cookie_input_data(), Botan::TLS::Client_Hello::extension_types(), Botan::TLS::Client_Hello::extensions(), Botan::TLS::Client_Hello_13::highest_supported_version(), Botan::TLS::Client_Hello::legacy_version(), Botan::TLS::Client_Hello::next_protocols(), Botan::TLS::Client_Hello::offered_suite(), prefers_compressed_ec_points(), Botan::TLS::Client_Hello::random(), renegotiation_info(), Botan::TLS::Client_Hello_13::retry(), secure_renegotiation(), Botan::TLS::Client_Hello::sent_signature_algorithms(), Botan::TLS::Client_Hello::serialize(), Botan::TLS::Client_Hello::session_id(), 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(), supports_session_ticket(), update_hello_cookie(), and Botan::TLS::Client_Hello_13::validate_updates().