Requirements:
Building:
Extract sqlite3 amalgamation to a directory and add BotanSqlite3 source files
If desired, codec.h can be modified to tweak the encryption algothrithms and parameters. (Defaults to Twofish/XTS with 256 bit key)
Apply the patch "sqlite3.diff": $ patch -p0 < sqlite3-amalgamation.patch
If the patching fails for some reason (ie, changes in SQLite3), it should be trivial to do it manually.
Compile the sqlite3 library with Botan encryption support:
$ gcc -c sqlite3.c -o botansqlite3.o && gcc -c codec.cpp -o codec.o pkg-config --cflags botan-1.10
&& ar rcs libbotansqlite3.a botansqlite3.o codec.o
(replace "botan-1.10" with appropriate version)
Testing:
Build the test:
$ g++ test_sqlite.cpp -o test_sqlite botan-config-1.10 --libs
./libbotansqlite3.a
(replace botan-config-1.10 w/ appropriate version)
Run the test $ ./test_sqlite
Look for "All seems good"