Comments (6)
The encryption extension coming with wxSQLite3 can be configured to use 256 bit AES encryption instead of the default 128 bit AES encryption.
Besides that you are free to combine the SQLCipher SQLite library with wxSQLite3. wxSQLite3 should work with SQLCipher out of the box, since SQLCipher uses the official encryption interface (sqlite3_key
and sqlite3_rekey
). This requires just to link wxSQLite3 against the SQLCipher library - any reasonably experienced developer should be able to do this.
IMHO no modifications to the wxSQLite3 source code are required to use the SQLCipher based SQLite library. So what would you expect from a SQLCipher support for wxSQLite3? How would it look like?
from wxsqlite3.
Since it was not clarified what would be expected from SQLCipher support for wxSQLite3, I close this issue. Feel free to reopen it, if additional information is provided.
from wxsqlite3.
with the following pragma, wxsqlite3 can open sqlcipher's file
PRAGMA cipher=SQLCipher;
pragma legacy=4;
from wxsqlite3.
with the following pragma, wxsqlite3 can open sqlcipher's file
PRAGMA cipher=SQLCipher; pragma legacy=4;
wxSQLite3 has support for SQLCipher for almost 5 years now, using the class wxSQLite3CipherSQLCipher
as a parameter to the wxSQLite3Database::Open
method (if you are using it in a wxWidgets based application) - see the minimal
sample coming with wxSQLite3 for an example.
Of course, it is possible to configure the cipher scheme without using the class wxSQLite3CipherSQLCipher
by using PRAGMA
SQL statements or even by using URI parameters with the database file name - that is, with all methods described in the SQLite3 Multiple Ciphers documentation. But IMHO in a wxSQLite3 based application using a dedicated wxSQLite3Cipher
classes is usually more convenient.
from wxsqlite3.
agreed.
Currently, the case is to migrate from aes128cbs
to SQLCipher
gradually for both the program and its data.
from wxsqlite3.
Currently, the case is to migrate from
aes128cbs
toSQLCipher
gradually for both the program and its data.
Method
wxSQLite3Database::ReKey(const wxSQLite3Cipher &cipher, const wxString &newKey)
can be used to not only change the passphrase, but also the cipher scheme - just pass an appropriately initialized wxSQLite3Cipher
object as the first parameter.
The only constraint is that enough disk space is available to actually do the conversion - free disk space of about 2 times the current size of the database should usually be enough.
And of course the application needs exclusive access to the database file.
from wxsqlite3.
Related Issues (20)
- Crash on just _some_ client PCs related to sqlite HOT 2
- -ldl in AM_LDFLAGS breaks building for systems that don't know/use that library HOT 4
- Visual Studio 2022 says wxprec.h is missing HOT 4
- Could this open database file crypted with official SEE? HOT 5
- Please consider updating autotool scripts HOT 6
- compile error on gcc 5.4 HOT 4
- wxSQLite3Database::SetJournalMode always returns DELETE HOT 1
- Build on MacOS and Linux? HOT 2
- cipherName is corrupted in wxSQLite3Cipher::SetCipher() HOT 2
- "file is not a database" issue HOT 6
- Linker error when building wxSqlite3-4.9.6 with MinGW-64 or TDM-64 under Windows 64-bit HOT 1
- wxSQLite3CipherSQLCipher : InitializeFromGlobalDefault crash HOT 3
- Supporting database encryption for SQLite version 3.32.0 and later HOT 4
- x64 MinGW build cannot find setup.h (4.5.1) HOT 3
- wxSQLite3Transaction HOT 2
- Rekey issue HOT 2
- wx/setup.h: No such file or directory HOT 11
- Memory leak in wxSQLite3Database::GetTable() HOT 2
- How to access wxsqlite3 encrypted database in Android。there is already a key HOT 2
- Android is strongly requested HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wxsqlite3.