Let's make (git) history!
Bu işleme şunda yer alıyor:
53
database/hdr/sqlite_modern_cpp/sqlcipher.h
Normal dosya
53
database/hdr/sqlite_modern_cpp/sqlcipher.h
Normal dosya
@@ -0,0 +1,53 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef SQLITE_HAS_CODEC
|
||||
#define SQLITE_HAS_CODEC
|
||||
#endif
|
||||
|
||||
#include "../sqlite_modern_cpp.h"
|
||||
|
||||
namespace sqlite
|
||||
{
|
||||
struct sqlcipher_config : public sqlite_config
|
||||
{
|
||||
std::string key;
|
||||
};
|
||||
|
||||
class sqlcipher_database : public database
|
||||
{
|
||||
public:
|
||||
sqlcipher_database(std::string db, const sqlcipher_config &config) : database(db, config)
|
||||
{
|
||||
set_key(config.key);
|
||||
}
|
||||
|
||||
sqlcipher_database(std::u16string db, const sqlcipher_config &config) : database(db, config)
|
||||
{
|
||||
set_key(config.key);
|
||||
}
|
||||
|
||||
void set_key(const std::string &key)
|
||||
{
|
||||
if(auto ret = sqlite3_key(_db.get(), key.data(), key.size()))
|
||||
errors::throw_sqlite_error(ret);
|
||||
}
|
||||
|
||||
void set_key(const std::string &key, const std::string &db_name)
|
||||
{
|
||||
if(auto ret = sqlite3_key_v2(_db.get(), db_name.c_str(), key.data(), key.size()))
|
||||
errors::throw_sqlite_error(ret);
|
||||
}
|
||||
|
||||
void rekey(const std::string &new_key)
|
||||
{
|
||||
if(auto ret = sqlite3_rekey(_db.get(), new_key.data(), new_key.size()))
|
||||
errors::throw_sqlite_error(ret);
|
||||
}
|
||||
|
||||
void rekey(const std::string &new_key, const std::string &db_name)
|
||||
{
|
||||
if(auto ret = sqlite3_rekey_v2(_db.get(), db_name.c_str(), new_key.data(), new_key.size()))
|
||||
errors::throw_sqlite_error(ret);
|
||||
}
|
||||
};
|
||||
} // namespace sqlite
|
||||
Yeni konuda referans
Bir kullanıcı engelle