SQLCipher 4.5.1 Release

SQLCipher 4.5.1 is now available. Please consult the full release announcement for complete details about the release.

The following summarizes the most substantial changes to SQLCipher core:

  • Updates baseline to use SQLite 3.37.2. IMPORTANT : This version includes an upstream SQLite fix for a database corruption bug. The bug could cause corruption when using SAVEPOINT operations. We recommend any applications using SAVEPOINT upgrade to the latest release.
  • Adds new PRAGMA cipher_log and cipher_log_level features to allow logging of TRACE, DEBUG, INFO, WARN, and ERROR messages to stdout, stderr, file, or logcat
  • Modifies PRAGMA cipher_profile to use sqlite3_trace_v2 and adds a logcat target for Android
  • Updates OpenSSL provider to support the EVP_MAC API with version 3+
  • Allows PRAGMA cipher_integrity_check to work properly with databases larger than 2GB
  • Fixes a missing munlock-before-free bug causing issues on some platforms

In addition, this release includes several improvements for SQLCipher Commercial and Enterprise packages:

  • Significant optimizations to improve performance on all platforms
  • Fixed issue that could cause excessively slow operation on Android emulators when using fast-boot
  • Statistics collection is now disabled by default, but can be enabled with PRAGMA cipher_stat_memory = ON and PRAGMA cipher_stat_crypto = ON .
  • Java and .NET library wrappers have been updated to the latest available versions.
  • non-FIPS packages using OpenSSL now include the latest release of 1.1.1m.

hi, there are three questions, could you help answer

What is default behave of PRAGMA cipher_log, will it record any log to any where in default?

Can we say “If ‘PRAGMA cipher_profile’ is not set, no profile will be recorded”?

Can we say “Statistics collection” feature is only in Commercial version?

Hello @chen_song - By default, SQLCipher will not log anything. You would need to set the log target and level for it to log anything. Likewise, cipher_profile is off by default, and you’d need to provide a target for it to record anything.

It is correct to say that Statistics collection is only available in Commercial and Enterprise packages.