I am using Android studio and declared SQLCipher in dependencies and current size is 2.6 MB. What libraries it has internally ?
How the encryption is happening on both (KitKat and Nougat) ? Are the encryption libraries enclosed in above @aar file ? and what are they ? (EX : OPENSSL , Java Crypto provider)
And for 1000 rows below are the statistics on “SQLLite” and “SQLCipher” , is it true ?
(SQLLite) (SQLCipher)
Insert 10398 MS 185699 MS
Update 6760 MS 10266 MS
Read 52 MS 66 MS
I am using Android studio and declared SQLCipher in dependencies and current size is 2.6 MB. What libraries it has internally ?
SQLCipher for Android utilizes SQLCipher internally, the community edition also includes OpenSSL for the crypto provider.
How the encryption is happening on both (KitKat and Nougat) ? Are the encryption libraries enclosed in above @aar file ? and what are they ? (EX : OPENSSL , Java Crypto provider)
You can read about the design of SQLCipher here, also, you can review the source of SQLCipher for Android here.
And for 1000 rows below are the statistics on “SQLLite” and “SQLCipher” , is it true ?
The will be a performance impact moving from standard SQLite, often 5-15% depending on the application. We have some performance guidance for using SQLCipher here.
SQLCipher for Android statically links OpenSSL as opposed to using the system provided version of OpenSSL. Historically the version of OpenSSL found on different Android devices varied; statically linking the library provides a guarantee of the version being used with the library.
Yes, unless you exclude x86 support within your build process.
You mention that one should be aware of potential import restrictions for some countries due to the inclusion of encryption technology.
Have you ever considered to hookup directly to the Android Java encryption functions? Obviously that means a lot of JNI transitions. But it does lessen or maybe even remove the impact of import restrictions.
Mainly wondering whether you tried it and discarded because of for example performance reasons, or maybe other reasons.
That is not something we have done, however the performance impact of that design may likely be unacceptable due to the heavy marshaling that would be required due to the database library being written in C.