8 #ifndef BOTAN_EXCEPTION_H__
9 #define BOTAN_EXCEPTION_H__
11 #include <botan/types.h>
12 #include <botan/parsing.h>
24 explicit Exception(
const std::string& msg) : m_msg(msg) {}
25 Exception(
const char* prefix,
const std::string& msg) : m_msg(
std::string(prefix) +
" " + msg) {}
41 Exception(
"Invalid argument", msg +
" in " + where) {}
44 #define BOTAN_ARG_CHECK(expr) \
45 do { if(!(expr)) throw Invalid_Argument(#expr, BOTAN_CURRENT_FUNCTION); } while(0)
78 const std::string& algo,
79 const std::string& provider) :
80 Exception(
"Unavailable " + type +
" " + algo +
81 (provider.empty() ?
std::string(
"") : (
" for provider " + provider)))
113 " is invalid for " + mode)
143 Lookup_Error(
"Could not find any algorithm named \"" + name +
"\"")
153 Exception(
"Could not find any provider for algorithm named \"" + name +
"\"")
164 Lookup_Error(
"Could not find provider '" + provider +
"' for " + algo) {}
201 Exception(
"Integrity failure: " + msg) {}
Provider_Not_Found(const std::string &algo, const std::string &provider)
Invalid_IV_Length(const std::string &mode, size_t bad_len)
Invalid_Key_Length(const std::string &name, size_t length)
Exception(const std::string &msg)
Invalid_Argument(const std::string &msg)
Algorithm_Not_Found(const std::string &name)
Lookup_Error(const std::string &type, const std::string &algo, const std::string &provider)
PRNG_Unseeded(const std::string &algo)
Stream_IO_Error(const std::string &err)
Exception(const char *prefix, const std::string &msg)
No_Provider_Found(const std::string &name)
Internal_Error(const std::string &err)
Not_Implemented(const std::string &err)
Integrity_Failure(const std::string &msg)
Decoding_Error(const std::string &name)
Unsupported_Argument(const std::string &msg)
Invalid_Algorithm_Name(const std::string &name)
Self_Test_Failure(const std::string &err)
const char * what() const BOTAN_NOEXCEPT override
Invalid_State(const std::string &err)
std::string to_string(const secure_vector< uint8_t > &bytes)
Invalid_Argument(const std::string &msg, const std::string &where)
Lookup_Error(const std::string &err)
Policy_Violation(const std::string &err)
Encoding_Error(const std::string &name)
Invalid_OID(const std::string &oid)