1 /* 2 * Exceptions 3 * (C) 2004-2006 Jack Lloyd 4 * 5 * Botan is released under the Simplified BSD License (see license.txt) 6 */ 7 8 #ifndef BOTAN_TLS_EXCEPTION_H_ 9 #define BOTAN_TLS_EXCEPTION_H_ 10 11 #include <botan/exceptn.h> 12 #include <botan/tls_alert.h> 13 14 namespace Botan { 15 16 namespace TLS { 17 18 /** 19 * TLS Exception Base Class 20 */ 21 class BOTAN_PUBLIC_API(2,0) TLS_Exception : public Exception 22 { 23 public: type()24 Alert::Type type() const { return m_alert_type; } 25 26 TLS_Exception(Alert::Type type, 27 const std::string& err_msg = "Unknown error") : Exception(err_msg)28 Exception(err_msg), m_alert_type(type) {} 29 error_code()30 int error_code() const noexcept override { return static_cast<int>(m_alert_type); } 31 error_type()32 ErrorType error_type() const noexcept override { return ErrorType::TLSError; } 33 34 private: 35 Alert::Type m_alert_type; 36 }; 37 38 /** 39 * Unexpected_Message Exception 40 */ 41 class BOTAN_PUBLIC_API(2,0) Unexpected_Message final : public TLS_Exception 42 { 43 public: Unexpected_Message(const std::string & err)44 explicit Unexpected_Message(const std::string& err) : 45 TLS_Exception(Alert::UNEXPECTED_MESSAGE, err) {} 46 }; 47 48 } 49 50 } 51 52 #endif 53