7 #ifndef BOTAN_PSK_DB_H_
8 #define BOTAN_PSK_DB_H_
10 #include <botan/secmem.h>
18 class MessageAuthenticationCode;
31 virtual std::set<std::string> list_names()
const = 0;
43 virtual void set(
const std::string&
name,
const uint8_t psk[],
size_t psk_len) = 0;
48 virtual void remove(
const std::string&
name) = 0;
54 virtual bool is_encrypted()
const = 0;
59 std::string
get_str(
const std::string& name)
const
65 void set_str(
const std::string& name,
const std::string& psk)
70 template<
typename Alloc>
72 const std::vector<uint8_t, Alloc>& psk)
75 set(name, psk.data(), psk.size());
106 std::set<std::string> list_names()
const override;
110 void set(
const std::string&
name,
const uint8_t psk[],
size_t psk_len)
override;
112 void remove(
const std::string&
name)
override;
120 virtual void kv_set(
const std::string& index,
const std::string& value) = 0;
126 virtual std::string kv_get(
const std::string& index)
const = 0;
131 virtual void kv_del(
const std::string& index) = 0;
136 virtual std::set<std::string> kv_get_all()
const = 0;
139 std::unique_ptr<BlockCipher>
m_cipher;
140 std::unique_ptr<MessageAuthenticationCode> m_hmac;
150 std::shared_ptr<SQL_Database> db,
151 const std::string& table_name);
155 void kv_set(
const std::string& index,
const std::string& value)
override;
156 std::string kv_get(
const std::string& index)
const override;
157 void kv_del(
const std::string& index)
override;
158 std::set<std::string> kv_get_all()
const override;
160 std::shared_ptr<SQL_Database> m_db;
161 const std::string m_table_name;
bool is_encrypted() const override
std::string get_str(const std::string &name) const
#define BOTAN_PUBLIC_API(maj, min)
void set_vec(const std::string &name, const std::vector< uint8_t, Alloc > &psk)
const uint8_t * cast_char_ptr_to_uint8(const char *s)
std::vector< T, secure_allocator< T >> secure_vector
void set_str(const std::string &name, const std::string &psk)
const char * cast_uint8_ptr_to_char(const uint8_t *b)