Releases: sqlcipher/sqlcipher
Release list
v5.0.0-beta
WARNING: This should only be used for beta testing at this time, not in production. It includes major functional, API, and behavioral changes that are NOT COMPATIBLE with SQLCipher 4 and earlier by default.
SQLCipher 5.0.0-beta details: https://www.zetetic.net/blog/2026/09/15/sqlcipher-5.0.0-beta/
Summary:
- Changes architecture to use VFS shims
- Uses AEAD Encryption with AES-256-GCM
- Increases KDF iteration increase to 512K
- Increase default page size to 8192 bytes
- Adds encryption and decryption support to PRAGMA rekey
- BREAKING CHANGES - see CHANGELOG.md and release announcement
v4.19.0
- Reports an error if a database is opened with an invalid
hexkeyURI parameter - Includes the provider error code in KDF error messages
- Fixes escaping of migration file names
- Fixes escaping of database aliases in
sqlcipher_export() - Avoids returning NULL rows from
cipher_settingsif allocation fails - Adjusts behavior for permanent error states
- Avoids leaking a partially initialized context if an initialization error occurs
- Fixes error reporting for failed rekey operations
- Improves consistency of internal memory utilization tracking
This maintenance release addresses two low-risk security issues in the core library related to sqlcipher_export and the hexkey URI parameters respectively. While the practical risks are low, we recommend that applications upgrade to incorporate the fix and the other improvements in this release. For additional details and release notes please consult release announcement.
v4.18.0
- Updates the upstream SQLite baseline to the latest patch release 3.53.4
- Avoids allocating memory on Windows during log writes which could cause a crash on Windows under non-default log settings with
PRAGMA cipher_memory_security = ON - Fixes "relocation truncated to fit" error for optimized GCC builds
- Adds comments clarifying intent of
crypto_openssl.c - Other miscellaneous fixes and general improvements
For additional details and release notes please consult the 4.18.0 release announcement.
v4.17.0
- Update baseline to SQLite 3.53.3
- Normalize error behavior for incorrect keys when first operation attempts to modfiy the schema
- Improve error detection, propagation, and fix fortuna reinitialization in LibTomCrypt provider
- Improve thread safety for debug memory counters and xoshiro state
- Add optional
SQLCIPHER_OMIT_MALLOCmacro to improve testability with Address Sanitizer - Numerous miscellaneous fixes and general improvements
For additional details and release notes please consult the 4.17.0 release announcement.
v4.16.0
- Updates the upstream SQLite baseline to the latest patch release 3.53.1
- Fixes an allocation issue that could cause an increase in mlock warning messages (most frequently on Android)
- Removes redundant logging of
mlockandVirtualLockfailures at WARN level
For additional details and release notes please consult the 4.16.0 release announcement.
v4.15.0
- Update baseline to SQLite 3.53.0
- Sanitize source database name passed to
sqlcipher_export(reported by
Dima Petschke from Deutsche Telekom Security GmbH) - Improve error handling in
sqlcipher_extra_init - Remove const from pzErrMesg in
sqlcipher_export_init(issue #590) - Minor code cleanups
This release includes a fix for a defensive mode bypass in sqlcipher_export. While the practical risk of the bypass is low, we recommend that applications upgrade to incorporate the fix and the other improvements in this release. For additional details and release notes please consult release announcement.
v4.14.0
- Updates the upstream SQLite baseline to 3.51.3, which fixes a critical WAL-reset database corruption bug. Applications running SQLCipher in WAL mode are strongly advised to upgrade.
- Reintroduces LibTomCrypt cryptographic provider support based on community feedback
- Updates the LibTomCrypt provider with improved logging and error handling
v4.13.0
- Updates baseline to SQLite 3.51.2
- Corrects encoding for
sqlcipher_export()function registration
v4.12.0
- Updates baseline to SQLite 3.51.1
- Adds
PRAGMA cipher_statusso applications can verify a database handle is using encryption - Improves guards against key/rekey/attach misuse
- Adds criteria for
PRAGMA cipher_migratetests - Fixes check for
__has_featuremacro to separate it from use - Fixes CHANGELOG.md markdown formatting, typos, and inline code snippets
- Fixes conditional in SQLCipher pragma handling
- Removes deprecated providers for LibTomCrypt and NSS
- Removes unnecessary shutdown and URI config changes in core tests
- Ensures all test suite database handles are closed before delete