Botan 3.4.0
Crypto and TLS for C&
tls_handshake_msg.h
Go to the documentation of this file.
1/*
2* TLS Handshake Message
3* (C) 2012 Jack Lloyd
4* 2016 Matthias Gierlings
5*
6* Botan is released under the Simplified BSD License (see license.txt)
7*/
8
9#ifndef BOTAN_TLS_HANDSHAKE_MSG_H_
10#define BOTAN_TLS_HANDSHAKE_MSG_H_
11
12#include <botan/tls_magic.h>
13#include <string>
14#include <vector>
15
16namespace Botan::TLS {
17
18class Handshake_IO;
19class Handshake_Hash;
20
21/**
22* TLS Handshake Message Base Class
23*/
25 public:
26 /**
27 * @return string representation of this message type
28 */
29 std::string type_string() const;
30
31 /**
32 * @return the message type
33 */
34 virtual Handshake_Type type() const = 0;
35
36 /**
37 * @return the wire representation of the message's type
38 */
39 virtual Handshake_Type wire_type() const {
40 // Usually equal to the Handshake_Type enum value,
41 // with the exception of TLS 1.3 Hello Retry Request.
42 return type();
43 }
44
45 /**
46 * @return DER representation of this message
47 */
48 virtual std::vector<uint8_t> serialize() const = 0;
49
50 virtual ~Handshake_Message() = default;
51 Handshake_Message() = default;
56};
57
58} // namespace Botan::TLS
59
60#endif
Handshake_Message & operator=(const Handshake_Message &)=delete
Handshake_Message & operator=(Handshake_Message &&)=default
Handshake_Message(Handshake_Message &&)=default
virtual ~Handshake_Message()=default
virtual Handshake_Type type() const =0
virtual std::vector< uint8_t > serialize() const =0
virtual Handshake_Type wire_type() const
Handshake_Message(const Handshake_Message &)=delete
#define BOTAN_PUBLIC_API(maj, min)
Definition compiler.h:31