monotone

monotone Mtn Source Tree

Root/botan/exceptn.h

1/*************************************************
2* Exceptions Header File *
3* (C) 1999-2005 The Botan Project *
4*************************************************/
5
6#ifndef BOTAN_EXCEPTION_H__
7#define BOTAN_EXCEPTION_H__
8
9#include <botan/types.h>
10#include <exception>
11#include <string>
12
13namespace Botan {
14
15/*************************************************
16* Exception Base Class *
17*************************************************/
18class Exception : public std::exception
19 {
20 public:
21 const char* what() const throw() { return msg.c_str(); }
22 Exception(const std::string& m = "Unknown error") { set_msg(m); }
23 virtual ~Exception() throw() {}
24 protected:
25 void set_msg(const std::string& m) { msg = "Botan: " + m; }
26 private:
27 std::string msg;
28 };
29
30/*************************************************
31* Invalid_Argument Exception *
32*************************************************/
33struct Invalid_Argument : public Exception
34 {
35 Invalid_Argument(const std::string& err = "") : Exception(err) {}
36 };
37
38/*************************************************
39* Invalid_Key_Length Exception *
40*************************************************/
41struct Invalid_Key_Length : public Invalid_Argument
42 {
43 Invalid_Key_Length(const std::string&, u32bit);
44 };
45
46/*************************************************
47* Invalid_Block_Size Exception *
48*************************************************/
49struct Invalid_Block_Size : public Invalid_Argument
50 {
51 Invalid_Block_Size(const std::string&, const std::string&);
52 };
53
54/*************************************************
55* Invalid_IV_Length Exception *
56*************************************************/
57struct Invalid_IV_Length : public Invalid_Argument
58 {
59 Invalid_IV_Length(const std::string&, u32bit);
60 };
61
62/*************************************************
63* Invalid_Message_Number Exception *
64*************************************************/
65struct Invalid_Message_Number : public Invalid_Argument
66 {
67 Invalid_Message_Number(const std::string&, u32bit);
68 };
69
70/*************************************************
71* Invalid_State Exception *
72*************************************************/
73struct Invalid_State : public Exception
74 {
75 Invalid_State(const std::string& err) : Exception(err) {}
76 };
77
78/*************************************************
79* PRNG_Unseeded Exception *
80*************************************************/
81struct PRNG_Unseeded : public Invalid_State
82 {
83 PRNG_Unseeded(const std::string& algo) :
84 Invalid_State("PRNG not seeded: " + algo) {}
85 };
86
87/*************************************************
88* Policy_Violation Exception *
89*************************************************/
90struct Policy_Violation : public Invalid_State
91 {
92 Policy_Violation(const std::string& err) :
93 Invalid_State("Policy violation: " + err) {}
94 };
95
96/*************************************************
97* Lookup_Error Exception *
98*************************************************/
99struct Lookup_Error : public Exception
100 {
101 Lookup_Error(const std::string& err) : Exception(err) {}
102 };
103
104/*************************************************
105* Algorithm_Not_Found Exception *
106*************************************************/
107struct Algorithm_Not_Found : public Exception
108 {
109 Algorithm_Not_Found(const std::string&);
110 };
111
112/*************************************************
113* Format_Error Exception *
114*************************************************/
115struct Format_Error : public Exception
116 {
117 Format_Error(const std::string& err = "") : Exception(err) {}
118 };
119
120/*************************************************
121* Invalid_Algorithm_Name Exception *
122*************************************************/
123struct Invalid_Algorithm_Name : public Format_Error
124 {
125 Invalid_Algorithm_Name(const std::string&);
126 };
127
128/*************************************************
129* Encoding_Error Exception *
130*************************************************/
131struct Encoding_Error : public Format_Error
132 {
133 Encoding_Error(const std::string& name) :
134 Format_Error("Encoding error: " + name) {}
135 };
136
137/*************************************************
138* Decoding_Error Exception *
139*************************************************/
140struct Decoding_Error : public Format_Error
141 {
142 Decoding_Error(const std::string& name) :
143 Format_Error("Decoding error: " + name) {}
144 };
145
146/*************************************************
147* Invalid_OID Exception *
148*************************************************/
149struct Invalid_OID : public Decoding_Error
150 {
151 Invalid_OID(const std::string& oid) :
152 Decoding_Error("Invalid ASN.1 OID: " + oid) {}
153 };
154
155/*************************************************
156* Stream_IO_Error Exception *
157*************************************************/
158struct Stream_IO_Error : public Exception
159 {
160 Stream_IO_Error(const std::string& err) :
161 Exception("I/O error: " + err) {}
162 };
163
164/*************************************************
165* Configuration Error Exception *
166*************************************************/
167struct Config_Error : public Format_Error
168 {
169 Config_Error(const std::string& err) :
170 Format_Error("Config error: " + err) {}
171 Config_Error(const std::string&, u32bit);
172 };
173
174/*************************************************
175* Integrity Failure Exception *
176*************************************************/
177struct Integrity_Failure : public Exception
178 {
179 Integrity_Failure(const std::string& err) :
180 Exception("Integrity failure: " + err) {}
181 };
182
183/*************************************************
184* Internal_Error Exception *
185*************************************************/
186struct Internal_Error : public Exception
187 {
188 Internal_Error(const std::string& err) :
189 Exception("Internal error: " + err) {}
190 };
191
192/*************************************************
193* Self Test Failure Exception *
194*************************************************/
195struct Self_Test_Failure : public Internal_Error
196 {
197 Self_Test_Failure(const std::string& err) :
198 Internal_Error("Self test failed: " + err) {}
199 };
200
201}
202
203#endif

Archive Download this file

Branches

Tags

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status