8 #include <botan/internal/ffi_util.h>
9 #include <botan/internal/os_utils.h>
10 #include <botan/version.h>
11 #include <botan/mem_ops.h>
12 #include <botan/hex.h>
13 #include <botan/base64.h>
24 std::fprintf(stderr,
"in %s exception '%s' returning %d\n", func_name, exn, rc);
95 catch(std::bad_alloc&)
107 catch(std::exception& e)
133 return "Invalid verifier";
136 return "Invalid input";
139 return "Invalid authentication code";
142 return "Insufficient buffer space";
145 return "Exception thrown";
148 return "Out of memory";
151 return "Error while calling system API";
154 return "Internal error";
160 return "Null pointer argument";
163 return "Bad parameter";
166 return "Key not set on object";
169 return "Invalid key length";
172 return "Invalid object state";
175 return "Not implemented";
178 return "Invalid object handle";
187 return "Unknown error";
190 return "Unknown error";
198 return BOTAN_HAS_FFI;
204 if(api_version == 20210220)
208 if(api_version == 20191214)
212 if(api_version == 20180713)
216 if(api_version == 20170815)
220 if(api_version == 20170327)
224 if(api_version == 20150515)
283 uint8_t* out,
size_t* out_len)
int ffi_guard_thunk(const char *func_name, std::function< int()> thunk)
void hex_encode(char output[], const uint8_t input[], size_t input_length, bool uppercase)
int botan_hex_encode(const uint8_t *in, size_t len, char *out, uint32_t flags)
bool read_env_variable(std::string &value_out, const std::string &var_name)
int ffi_error_exception_thrown(const char *func_name, const char *exn, int rc)
size_t base64_decode_max_output(size_t input_length)
virtual ErrorType error_type() const noexcept
bool constant_time_compare(const uint8_t x[], const uint8_t y[], size_t len)
int write_vec_output(uint8_t out[], size_t *out_len, const std::vector< uint8_t, Alloc > &buf)
#define BOTAN_FFI_HEX_LOWER_CASE
int botan_base64_encode(const uint8_t *in, size_t len, char *out, size_t *out_len)
uint32_t botan_version_patch()
int botan_scrub_mem(void *mem, size_t bytes)
int write_str_output(uint8_t out[], size_t *out_len, const std::string &str)
size_t base64_encode(char out[], const uint8_t in[], size_t input_length, size_t &input_consumed, bool final_inputs)
uint32_t botan_ffi_api_version()
uint32_t botan_version_major()
int error_code() const noexceptoverride
int botan_same_mem(const uint8_t *x, const uint8_t *y, size_t len)
size_t hex_decode(uint8_t output[], const char input[], size_t input_length, size_t &input_consumed, bool ignore_ws)
const char * botan_error_description(int err)
uint32_t botan_version_minor()
uint32_t version_datestamp()
int botan_base64_decode(const char *base64_str, size_t in_len, uint8_t *out, size_t *out_len)
void secure_scrub_memory(void *ptr, size_t n)
size_t base64_decode(uint8_t out[], const char in[], size_t input_length, size_t &input_consumed, bool final_inputs, bool ignore_ws)
uint32_t botan_version_datestamp()
int botan_hex_decode(const char *hex_str, size_t in_len, uint8_t *out, size_t *out_len)
const char * what() const noexceptoverride
int botan_ffi_supports_api(uint32_t api_version)
int botan_constant_time_compare(const uint8_t *x, const uint8_t *y, size_t len)
const char * version_cstr()
const char * botan_version_string()