Skip to content

Commit 0243798

Browse files
committed
Prepare release of version 1.6.3
- Based on SQLite version 3.42.0 - Enable session extension - Fix incorrect patch of SQLite shell source
1 parent 473ff0e commit 0243798

File tree

65 files changed

+11161
-5457
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+11161
-5457
lines changed

CHANGELOG.md

Lines changed: 392 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,392 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
## [1.6.3] - 2023-05-18
11+
12+
### Changed
13+
14+
- Based on SQLite version 3.42.0
15+
- Enabled session extension
16+
17+
### Fixed
18+
19+
- Fixed incorrect patch of SQLite shell source
20+
21+
## [1.6.2] - 2023-03-23
22+
23+
### Changed
24+
25+
- Based on SQLite version 3.41.2
26+
27+
## [1.6.1] - 2023-03-14
28+
29+
### Changed
30+
31+
- Based on SQLite version 3.41.1
32+
- Symbol `MAX_PATHNAME` (used on Unix-like platforms) has a fixed value of **512** in the original SQLite source code. This can now be configured at compile time to use a higher value (like **4096** - which is supported by most Linux variants) (see issue #104). Use symbol `SQLITE3MC_MAX_PATHNAME` to define a higher value.
33+
34+
## [1.6.0] - 2023-02-23
35+
36+
### Changed
37+
38+
- Based on SQLite version 3.41.0
39+
- Added CMake build support (thanks to @lwttai and @jammerxd)
40+
41+
### Added
42+
43+
- Added automatic VFS shim instantiation (see issue #104)
44+
To enable encryption support for a non-default VFS it is now enough to specify the name of the requested real VFS with the prefix **multipleciphers-**, either via the URI parameter `vfs` or via the 4th parameter of the SQLite API function `sqlite3_open_v2()`.
45+
46+
## [1.5.5] - 2022-12-29
47+
48+
### Changed
49+
50+
- Based on SQLite version 3.40.1
51+
52+
## [1.5.4] - 2022-11-19
53+
54+
### Changed
55+
56+
- Based on SQLite version 3.40.0
57+
58+
### Fixed
59+
60+
- Issue #91: Android NDK build error
61+
- Issue #92: iOS build error
62+
63+
## [1.5.3] - 2022-09-30
64+
65+
### Changed
66+
67+
- Based on SQLite version 3.39.4
68+
69+
## [1.5.2] - 2022-09-08
70+
71+
### Changed
72+
73+
- Based on SQLite version 3.39.3
74+
75+
### Fixed
76+
77+
- Fixed retrieval of configuration parameter table (issue #90)
78+
79+
## [1.5.1] - 2022-09-08
80+
81+
:warning:**Important** :warning:
82+
83+
This version and version **1.5.0** have a bug in the code for retrieval of the cipher configuration parameter table, leading to a crash on activating encryption for a database connection (see issue #90). **Only builds that _omit_ some of the builtin cipher schemes are affected.**
84+
85+
### Fixed
86+
87+
- Fixed a bug in shutdown code
88+
89+
## [1.5.0] - 2022-09-06
90+
91+
:warning:**Important** :warning:
92+
93+
This version contains a bug in the shutdown code that leads to a crash on invoking `sqlite3_shutdown`.
94+
95+
### Changed
96+
97+
- Based on SQLite version 3.39.3
98+
- Eliminated a few compile time warnings
99+
- Improved error messages from `sqlite3_rekey`
100+
101+
### Added
102+
103+
- Added option to register cipher schemes dynamically
104+
- Added WebAssembly target support (issues #88, #89)
105+
106+
## [1.4.8] - 2022-07-26
107+
108+
### Changed
109+
110+
- Based on SQLite version 3.39.2
111+
112+
### Fixed
113+
114+
- Issue #85: `PRAGMA rekey` could cause a crash
115+
116+
## [1.4.7] - 2022-07-21
117+
118+
### Changed
119+
120+
- Based on SQLite version 3.39.2
121+
122+
## [1.4.6] - 2022-07-14
123+
124+
### Changed
125+
126+
- Based on SQLite version 3.39.1
127+
128+
## [1.4.5] - 2022-07-02
129+
130+
### Changed
131+
132+
- Based on SQLite version 3.39.0
133+
- Enabled preupdate hooks in build files
134+
135+
## [1.4.4] - 2022-05-16
136+
137+
### Changed
138+
139+
- Based on SQLite version 3.38.5
140+
141+
### Added
142+
143+
- Added optional extensions COMPRESS, SQLAR, and ZIPFILE
144+
- Added optional TCL support (source code only)
145+
146+
## [1.4.3] - 2022-05-07
147+
148+
### Changed
149+
150+
- Based on SQLite version 3.38.5
151+
152+
## [1.4.2] - 2022-04-27
153+
154+
### Changed
155+
156+
- Based on SQLite version 3.38.3
157+
158+
## [1.4.1] - 2022-04-27
159+
160+
### Fixed
161+
162+
- Issue #74 (only debug builds are affected)
163+
164+
## [1.4.0] - 2022-04-27
165+
166+
### Changed
167+
168+
- Based on SQLite version 3.38.2
169+
170+
### Fixed
171+
172+
- Removed global VFS structure to resolve issue #73
173+
174+
## [1.3.10] - 2022-03-28
175+
176+
### Changed
177+
178+
- Based on SQLite version 3.38.2
179+
180+
### Added
181+
182+
- Added pragma hexkey/hexrekey (resolving issue #70)
183+
184+
## [1.3.9] - 2022-03-15
185+
186+
### Changed
187+
188+
- Based on SQLite version 3.38.1
189+
190+
## [1.3.8] - 2022-02-24
191+
192+
### Changed
193+
194+
- Based on SQLite version 3.38.0
195+
- Updated build files (JSON extension is now integral part of SQLite)
196+
197+
### Fixed
198+
199+
- Eliminated compile time warning (issue #66)
200+
201+
## [1.3.7] - 2022-01-08
202+
203+
### Changed
204+
205+
- Based on SQLite version 3.37.2
206+
207+
## [1.3.6] - 2022-01-01
208+
209+
### Changed
210+
211+
- Based on SQLite version 3.37.1
212+
213+
## [1.3.5] - 2021-11-29
214+
215+
### Changed
216+
217+
- Based on SQLite version 3.37.0
218+
- Added build support for Visual C++ 2022
219+
- Applied minor adjustments to ChaCha20 implementation (taken from upstream resilar/sqleet)
220+
- The SQLite3 Multiple Ciphers version information is now exposed in the amalgamation header
221+
- The compile-time configuration options have been moved to a separate header file
222+
223+
### Fixed
224+
225+
- Issue #55: Set pager error state on reporting decrypt error condition to avoid assertion when SQLITE_DEBUG is defined
226+
- Issue #54: Check definition of symbol `__QNX__` to support compilation for QNX
227+
- Issues #50 and #51: Numeric cipher ids are now handled correctly, if some of the cipher schemes are excluded from compilation
228+
229+
## [1.3.4] - 2021-07-24
230+
231+
### Changed
232+
233+
- Allow empty passphrase for `PRAGMA key`
234+
- Allow to fully disable including of user authentication by defining `SQLITE_USER_AUTHENTICATION=0`
235+
236+
## [1.3.3] - 2021-06-19
237+
238+
### Changed
239+
240+
- Based on SQLite version 3.36.0
241+
242+
## [1.3.2] - 2021-05-14
243+
244+
:warning:**Important Information when operating SQLite in WAL journal mode** :warning:
245+
246+
To allow concurrent use of SQLite databases in WAL journal mode with legacy encryption implementations like [System.Data.SQLite](https://system.data.sqlite.org) or [SQLCipher](https://www.zetetic.net/sqlcipher/) a new WAL journal encryption implementation was introduced in _SQLite Multiple Ciphers version **1.3.0**_.
247+
248+
Unfortunately, WAL journals left behind by versions <= 1.2.5 are not compatible with this new implementation. To be able to access WAL journals created by prior versions, the configuration parameter `mc_legacy_wal` was introduced. If the parameter is set to 1, then the prior WAL journal encryption mode is used. The default of this parameter can be set at compile time by setting the symbol `SQLITE3MC_LEGACY_WAL` accordingly, but the actual value can also be set at runtime using the pragma or the URI parameter `mc_legacy_wal`.
249+
250+
In principle, operating generally in WAL legacy mode is possible, but it is strongly recommended to use the WAL legacy mode only to recover WAL journals left behind by prior versions without data loss.
251+
252+
### Added
253+
254+
- Added configuration parameter `mc_legacy_wal` (issue #40)
255+
256+
### Fixed
257+
258+
- Issue #39: Corrupted WAL journal due to referencing the wrong codec pointer
259+
260+
## [1.3.1] - 2021-04-28
261+
262+
:stop_sign: **Attention** :stop_sign:
263+
264+
As described in issue #39 using SQLite in _WAL journal mode_ is broken in this version.
265+
266+
### Changed
267+
268+
- Prevent rekey in WAL journal mode, because performing a rekeying operation (`PRAGMA rekey`) in WAL journal mode could cause database corruption.
269+
270+
### Fixed
271+
272+
- Fix issue in user authentication extension that prevented VACUUMing or rekeying
273+
274+
## [1.3.0] - 2021-04-23
275+
276+
:stop_sign: **Attention** :stop_sign:
277+
278+
As described in issue #39 using SQLite in _WAL journal mode_ is broken in this version.
279+
280+
### Changed
281+
282+
- Based on SQLite version 3.35.5
283+
- Adjusted build files for MinGW
284+
The compile option was changed from **-march=native** to **-msse4.2 -maes**. Additionally, the MinGW variant _TDM-GCC_ is now supported by replacing the use of `RtlGenRandom` (aka `SystemFunction036`) with the use of the standard function `rand_s` (which internally calls `RtlGenRandom`). The direct call to `RtlGenRandom` can be activated by defining the compile time symbol `SQLITE3MC_USE_RAND_S=0`.
285+
286+
### Fixed
287+
288+
- Issue #37: Allow concurrent access from legacy applications by establishing WAL journal mode compatibility
289+
This change allows concurrent use of applications still using SQLite versions (< 3.32.0) based on the `SQLITE_HAS_CODEC` encryption API and applications using the new _SQLite3 Multiple Ciphers_ implementation in WAL journal mode.
290+
- Issue #36: Clear pager cache after setting a new passphrase to force a reread of the database header
291+
292+
## [1.2.5] - 2021-04-20
293+
294+
### Changed
295+
296+
- Based on SQLite version 3.35.5
297+
298+
## [1.2.4] - 2021-04-02
299+
300+
### Changed
301+
302+
- Based on SQLite version 3.35.4
303+
304+
## [1.2.3] - 2021-03-27
305+
306+
### Changed
307+
308+
- Based on SQLite version 3.35.3
309+
310+
## [1.2.2] - 2021-03-22
311+
312+
### Changed
313+
314+
- Based on SQLite version 3.35.2
315+
316+
## [1.2.1] - 2021-03-15
317+
318+
### Changed
319+
320+
- Based on SQLite version 3.35.1
321+
322+
## [1.2.0] - 2021-03-13
323+
324+
### Changed
325+
326+
- Based on SQLite version 3.35.0
327+
- Cleaned up precompiler instructions to exclude cipher schemes from build
328+
329+
### Added
330+
331+
- Enabled new SQLite Math Extension (Note: _log_ function now computes _log10_, not _ln_.)
332+
333+
### Fixed
334+
335+
- Fixed a bug in cipher selection via URI, if cipher schemes were excluded from build (issue #26)
336+
337+
## [1.1.4] - 2021-01-23
338+
339+
### Changed
340+
341+
- Based on SQLite version 3.34.1
342+
343+
## [1.1.3] - 2020-12-29
344+
345+
### Changed
346+
347+
- Added code for AES hardware support on ARM platforms
348+
- Added GitHub Actions for CI
349+
350+
## [1.1.2] - 2020-12-10
351+
352+
### Changed
353+
354+
- Added SQLite3 Multple Ciphers version info to shell application
355+
356+
### Fixed
357+
358+
- Fixed a bug on cipher configuration via PRAGMA commands or URI parameters (issue #20)
359+
360+
## [1.1.1] - 2020-12-07
361+
362+
### Fixed
363+
364+
- Fixed a bug on removing encryption from an encrypted database (issue #19)
365+
366+
## [1.1.0] - 2020-12-06
367+
368+
### Changed
369+
370+
- Based on SQLite version 3.34.0
371+
- Added code for AES hardware support on x86 platforms
372+
373+
### Fixed
374+
- Fixed issues with sqlite3_key / sqlite3_rekey
375+
376+
## [1.0.1] - 2020-10-03
377+
378+
### Added
379+
380+
- Added VSV extension (_V_ariably _S_eparated _V_alues)
381+
382+
## [1.0.0] - 2020-08-15
383+
384+
First release of the new implementation of the SQLite3 encryption extension with support for multiple ciphers. The release is based on SQLite version 3.33.0.
385+
386+
The following ciphers are supported:
387+
388+
- AES 128 Bit CBC - No HMAC ([wxSQLite3](https://github.com/utelle/wxsqlite3))
389+
- AES 256 Bit CBC - No HMAC ([wxSQLite3](https://github.com/utelle/wxsqlite3))
390+
- ChaCha20 - Poly1305 HMAC ([sqleet](https://github.com/resilar/sqleet), _default_)
391+
- AES 256 Bit CBC - SHA1/SHA256/SHA512 HMAC ([SQLCipher](https://www.zetetic.net/sqlcipher/), database versions 1, 2, 3, and 4)
392+
- RC4 - No HMAC ([System.Data.SQLite](http://system.data.sqlite.org))

0 commit comments

Comments
 (0)