Release of SQLite3MC Version 2.4.0

Version 2.4.0 of the SQLite encryption extension SQLite3 Multiple Ciphers, based on SQLite 3.53.4, has been released.
In this context, the components SQLite3MC-NuGet, wxSQLite3, and apsw-sqlite3mc have also been updated.
The restructuring of GitHub Workflows has been completed. The update processes, the creation of release artifacts, and the releases themselves are automated as much as possible using GitHub Workflows, while adhering to the SLSA guidelines to the best of our ability.
Starting with this release, the Windows binaries are signed with digital signatures from the SignPath Foundation. The dependent repositories SQLite3MultipleCiphers-cb and [SQLite3MultipleCiphers-NuGet] (https://github.com/utelle/SQLite3MultipleCiphers-NuGet), which are used to build and publish the NuGet packages, are still in the review phase, but the Windows binaries there are to be digitally signed in the future, too.
SQLite3 Multiple Ciphers
Changes since previous release:
- Based on SQLite version 3.53.4
- Regenerated build files (with some additional options enabled)
- Modified rekey operation to support rekeying in WAL mode
Up to now the rekey operation generated a new key salt, but in WAL mode that would have led to corrupted databases, and was therefore not supported. Rekeying in WAL mode is now supported at the price of keeping the previous key salt. However, this is usually only a minor security degradation. - Added extension for value-level encryption (VLE)
SQL functions sqlite3mc_vle_key, sqlite3mc_vle_encrypt, and sqlite3mc_vle_decrypt were implemented to allow to set up an encryption key for encrypting resp decrypting individual column values.
SQLite3 Multiple Ciphers NuGet
Changes since previous release:
- Based of SQLite3 Multiple Ciphers 2.4.0 and SQLite 3.53.4
The project consists of the following 3 NuGet packages (downloadable from NuGet.org):
- SQLite3MC.PCLRaw.bundle, depends on
providerandlib - SQLite3MC.PCLRaw.provider, depends on SQLitePCLRaw.core (>= 3.0.2)
- SQLite3MC.PCLRaw.lib, no dependencies
Note for users of the NuGet packages SQLitePCLRaw.*e_sqlite3mc
The packages SQLitePCLRaw.bundle_e_sqlite3mc, SQLitePCLRaw.provider.e_sqlite3mc, and SQLitePCLRaw.lib.e_sqlite3mc are deprecated and are no longer actively maintained.
The packages SQLite3MC.PCLRaw.bundle, SQLite3MC.PCLRaw.provider, and SQLite3MC.PCLRaw.lib provide the same functionality and can be used as an alternative.
wxSQLite3
Changes since previous release:
- Upgrade to SQLite3 Multiple Ciphers Version 2.4.0
apsw-sqlite3mc
This version is based on:
Changes in the underlying APSW version can be found in the APSW change history.
Releases of apsw-sqlite3mc are distributed via PyPI.