Botan 1.10.17
tls_alerts.h
Go to the documentation of this file.
1/*
2* Alert Message
3* (C) 2004-2006 Jack Lloyd
4*
5* Released under the terms of the Botan license
6*/
7
8#ifndef BOTAN_TLS_ALERT_H__
9#define BOTAN_TLS_ALERT_H__
10
11#include <botan/tls_exceptn.h>
12
13namespace Botan {
14
15/**
16* SSL/TLS Alert Message
17*/
18class Alert
19 {
20 public:
21 /**
22 * @return if this alert is a fatal one or not
23 */
24 bool is_fatal() const { return fatal; }
25
26 /**
27 * @return type of alert
28 */
29 Alert_Type type() const { return type_code; }
30
31 /**
32 * Deserialize an Alert message
33 * @param buf the serialized alert
34 */
36 {
37 if(buf.size() != 2)
38 throw Decoding_Error("Alert: Bad size for alert message");
39
40 if(buf[0] == 1) fatal = false;
41 else if(buf[0] == 2) fatal = true;
42 else
43 throw Decoding_Error("Alert: Bad type code for alert level");
44
45 type_code = static_cast<Alert_Type>(buf[1]);
46 }
47 private:
48 bool fatal;
49 Alert_Type type_code;
50 };
51
52}
53
54#endif
bool is_fatal() const
Definition tls_alerts.h:24
Alert(const MemoryRegion< byte > &buf)
Definition tls_alerts.h:35
Alert_Type type() const
Definition tls_alerts.h:29
size_t size() const
Definition secmem.h:29
Alert_Type
Definition tls_magic.h:62
Decoding_Error(const std::string &name)
Definition exceptn.h:140