SQLCipher |
https://www.zetetic.net/sqlcipher/ |
yes |
Android |
depends on androidx.sqlite:sqlite . Using this library "would probably require forking sqlite-jdbc and adapting it to work with SQLCipher rather than plain SQLite" |
|
SQLCipher is an open source library that provides transparent, secure 256-bit AES encryption of SQLite database files. |
|
|
While the Android AAR package is available for free, the JDBC driver for the JVM is only available in the Enterprise plan from Zetetic |
SQLite Multiple Ciphers |
https://github.com/utelle/SQLite3MultipleCiphers https://utelle.github.io/SQLite3MultipleCiphers/
|
yes |
C |
This project is Work In Progress. As of May 2021, the code base is now rather stable, however, further major code modifications and/or reorganizations may still occur. |
|
The project SQLite3 Multiple Ciphers implements an encryption extension for SQLite with support for multiple ciphers. In the past the encryption extension was bundled with the project wxSQLite3, which provides a thin SQLite3 database wrapper for wxWidgets. |
|
|
|
SQLite JDBC Crypt |
https://github.com/Willena/sqlite-jdbc-crypt |
yes |
Android+JVM via bundled native code (Utelle) |
Based on SQLite Multiple Ciphers (see row above) |
|
SQLite JDBC is a library for accessing and creating SQLite database files in Java. |
|
|
Looks promising. Got it to work on Linux without problems; got it to work on Android, too, but not directly because the native code bundled in the JAR is not accessible on Android with the approach of native library loading they use and even when the *.so files are copied into the project, they do not work because the seem to compiled for glibc not musl . Still, got it working by copying Java and native code into the project and compiling using NDK. Will probably require some work to get this to work properly. We can try compiling the native code ourselves as we do with Tor. Also it would be possible to create AAR packages from an android-library project. |
SQLeet |
https://github.com/resilar/sqleet |
yes |
C |
"sqleet does not have an out-of-the-box support for Android. However, SQLite Android Bindings project provides an easy way to bundle a custom SQLite3 version (such as sqleet) into an Android application with the standard Android interface android.database.sqlite." We would still need a way to have a unified JVM/Android interface. In combination with SQLDroid (see below) we could potentially use this using a unified JDBC API, however we'd also need a JVM JDBC driver that uses SQLeet for which support is not mentioned on the project page |
|
sqleet is an encryption extension for SQLite3. The encryption is transparent (on-the-fly) and based on modern cryptographic algorithms designed for high performance in software and robust side-channel resistance. The compilation of sqleet is easy because there are no external dependencies, which simplifies cross-compiling and cross-platform development. |
|
|
|