11#ifndef BOTAN_TLS_MESSAGES_H_
12#define BOTAN_TLS_MESSAGES_H_
14#include <botan/tls_algos.h>
15#include <botan/tls_handshake_msg.h>
16#include <botan/tls_session_id.h>
17#include <botan/tls_signature_scheme.h>
18#include <botan/tls_version.h>
59 std::vector<uint8_t>
serialize()
const override;
63 const std::vector<uint8_t>&
cookie()
const {
return m_cookie; }
68 std::string_view client_identity,
72 std::vector<uint8_t> m_cookie;
75class Client_Hello_Internal;
103 const std::vector<uint8_t>&
random() const;
131 std::vector<uint8_t>
serialize() const override;
133 const std::vector<uint8_t>&
cookie() const;
181 std::vector<uint8_t>
serialize() const override;
197 const std::vector<uint8_t>&
random() const;
239 const std::vector<uint8_t>&
response()
const {
return m_response; }
245 std::vector<uint8_t> serialize() const final;
248 std::vector<uint8_t> m_response;
260 std::vector<uint8_t>
serialize()
const override;
#define BOTAN_UNSTABLE_API
const std::vector< uint8_t > & response() const
Handshake_Type type() const final
Certificate_Status(const std::vector< uint8_t > &buf, Connection_Side from)
Handshake_Type type() const override
Signature_Scheme m_scheme
Certificate_Verify(const std::vector< uint8_t > &buf)
Certificate_Verify()=default
std::vector< uint8_t > serialize() const override
Signature_Scheme signature_scheme() const
std::vector< uint8_t > m_signature
friend class Client_Hello_13
Client_Hello_12_Shim(const std::vector< uint8_t > &buf)
Client_Hello(const Client_Hello &)=delete
const std::vector< uint8_t > & cookie() const
std::string sni_hostname() const
std::vector< uint8_t > serialize() const override
const std::vector< uint8_t > & random() const
std::vector< Signature_Scheme > signature_schemes() const
const Extensions & extensions() const
Client_Hello(Client_Hello &&) noexcept
bool offered_suite(uint16_t ciphersuite) const
std::unique_ptr< Client_Hello_Internal > m_data
bool sent_signature_algorithms() const
std::vector< Group_Params > supported_ecc_curves() const
bool supports_alpn() const
std::vector< Signature_Scheme > certificate_signature_schemes() const
const std::vector< uint16_t > & ciphersuites() const
std::vector< uint8_t > cookie_input_data() const
std::set< Extension_Code > extension_types() const
std::vector< Group_Params > supported_dh_groups() const
std::vector< std::string > next_protocols() const
const Session_ID & session_id() const
Protocol_Version legacy_version() const
const std::vector< uint8_t > & compression_methods() const
Client_Hello & operator=(const Client_Hello &)=delete
std::vector< uint16_t > srtp_profiles() const
Handshake_Type type() const override
std::vector< Protocol_Version > supported_versions() const
Client_Hello(const Client_Hello &)=delete
Handshake_Message()=default
Finished(const std::vector< uint8_t > &buf)
std::vector< uint8_t > serialize() const override
std::vector< uint8_t > verify_data() const
std::vector< uint8_t > m_verification_data
Handshake_Type type() const override
Handshake_Message()=default
Handshake_Type type() const override
Hello_Verify_Request(const std::vector< uint8_t > &buf)
const std::vector< uint8_t > & cookie() const
std::vector< uint8_t > serialize() const override
Server_Hello_12_Shim(const std::vector< uint8_t > &buf)
friend class Server_Hello_13
Protocol_Version selected_version() const final
std::optional< Protocol_Version > random_signals_downgrade() const
Server_Hello(const Server_Hello &)=delete
uint16_t ciphersuite() const
std::vector< uint8_t > serialize() const override
std::set< Extension_Code > extension_types() const
Handshake_Type type() const override
const Session_ID & session_id() const
const std::vector< uint8_t > & random() const
uint8_t compression_method() const
Server_Hello(Server_Hello &&) noexcept
std::unique_ptr< Server_Hello_Internal > m_data
const Extensions & extensions() const
Server_Hello & operator=(const Server_Hello &)=delete
virtual Protocol_Version selected_version() const =0
Protocol_Version legacy_version() const
Strong< std::vector< uint8_t >, struct Session_ID_ > Session_ID
holds a TLS 1.2 session ID for stateful resumption