10#include <botan/secmem.h>
18class MessageAuthenticationCode;
43 virtual void set(
const std::string&
name,
const uint8_t psk[],
size_t psk_len) = 0;
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;
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
virtual void kv_del(const std::string &index)=0
virtual std::string kv_get(const std::string &index) const =0
virtual std::set< std::string > kv_get_all() const =0
virtual void kv_set(const std::string &index, const std::string &value)=0
std::string get_str(const std::string &name) const
virtual std::set< std::string > list_names() const =0
void set_vec(const std::string &name, const std::vector< uint8_t, Alloc > &psk)
virtual void set(const std::string &name, const uint8_t psk[], size_t psk_len)=0
virtual bool is_encrypted() const =0
virtual secure_vector< uint8_t > get(const std::string &name) const =0
void set_str(const std::string &name, const std::string &psk)
virtual ~PSK_Database()=default
virtual void remove(const std::string &name)=0
#define BOTAN_PUBLIC_API(maj, min)
const char * cast_uint8_ptr_to_char(const uint8_t *b)
std::vector< T, secure_allocator< T > > secure_vector
const uint8_t * cast_char_ptr_to_uint8(const char *s)