2 All notable changes to this project will be documented in this file.
4 ## [unreleased] - [unreleased]
5 - Defer reading salt from header until key derivation is triggered
6 - Clarify usage of sqlite3_rekey for plaintext databases in header
7 - Normalize attach behavior when key is not yet derived
8 - Adds PRAGMA cipher_settings to query current database codec settings
9 - Adds PRAGMA cipher_default_settings to query current default SQLCipher options
10 - PRAGMA cipher_hmac_pgno is now deprecated
11 - PRAGMA cipher_hmac_salt_mask is now deprecated
12 - PRAGMA fast_kdf_iter is now deprecated
14 ## [4.0.1] - 2018-12-17
15 - Based on upstream SQLite 3.26.0 (addresses SQLite “Magellan” issue)
16 - Adds PRAGMA cipher_compatibility and cipher_default_compatibility which take automatcially configure appropriate compatibility settings for the specified SQLCipher major version number
17 - Filters attach statements with KEY parameters from readline history
18 - Fixes crash in command line shell with empty input (i.e. ^D)
19 - Fixes warnings when compiled with strict-prototypes
21 ## [4.0.0] - 2018-11-30
23 - Default page size for databases increased to 4096 bytes (up from 1024) *
24 - Default PBKDF2 iterations increased to 256,000 (up from 64,000) *
25 - Default KDF algorithm is now PBKDF2-HMAC-SHA512 (from PBKDF2-HMAC-SHA1) *
26 - Default HMAC algorithm is now HMAC-SHA512 (from HMAC-SHA1) *
27 - PRAGMA cipher is now disabled and no longer supported (after multi-year deprecation) *
28 - PRAGMA rekey_cipher is now disabled and no longer supported *
29 - PRAGMA rekey_kdf_iter is now disabled and no longer supported *
30 - By default all memory allocated internally by SQLite before the memory is wiped before it is freed
31 - PRAGMA cipher_memory_security: allows full memory wiping to be disabled for performance when the feature is not required
32 - PRAGMA cipher_kdf_algorithm, cipher_default_kdf_algorithm to control KDF algorithm selection between PBKDF2-HMAC-SHA1, PBKDF2-HMAC-SHA256 and PBKDF2-HMAC-SHA512
33 - PRAGMA cipher_hmac_algorithm, cipher_default_hmac_algorithm to control HMAC algorithm selection between HMAC-SHA1, HMAC-SHA256 and PBKDF2-HMAC-SHA512
34 - Based on upstream SQLite 3.25.2
35 - When compiled with readline support, PRAGMA key and rekey lines will no longer be
37 - Adds second optional parameter to sqlcipher_export to specify source database to
38 support bidirectional exports
39 - Fixes compatibility with LibreSSL 2.7.0+
40 - Fixes compatibility with OpenSSL 1.1.x
41 - Simplified and improved performance for PRAGMA cipher_migrate when migrating older database versions
42 - Refactoring of SQLCipher tests into separate files by test type
43 - PRAGMA cipher_plaintext_header_size and cipher_default_plaintext_header_size: allocates a portion of the database header which will not be encrypted to allow identification as a SQLite database
44 - PRAGMA cipher_salt: retrieve or set the salt value for the database
45 - Adds Podspec for using tagged versions of SQLCipher
46 - Define SQLCIPHER_PROFILE_USE_FOPEN for WinXP support
47 - Improved error handling for cryptographic providers
48 - Improved memory handling for PRAGMA commands that return values
49 - Improved version reporting to assist with identification of distribution
50 - Major rewrite and simplification of internal codec and pager extension
51 - Fixes compilation with --disable-amalgamation
52 - Removes sqlcipher.xcodeproj build support
54 ## [3.4.2] - 2017-12-21
56 - Added support for building with LibreSSL
59 - Merge upstream SQLite 3.20.1
60 - Text strings for `SQLITE_ERROR` and `SQLITE_NOTADB` changed to match upstream SQLite
61 - Remove static modifier for codec password functions
62 - Page alignment for `mlock`
63 - Fix segfault in `sqlcipher_cipher_ctx_cmp` during rekey operation
64 - Fix `sqlcipher_export` and `cipher_migrate` when tracing API in use
65 - Validate codec page size when setting
66 - Guard OpenSSL initialization and cleanup routines
67 - Allow additional linker options to be passed via command line for Windows platforms
69 ## [3.4.1] - 2016-12-28
71 - Added support for OpenSSL 1.1.0
74 - Merged upstream SQLite 3.15.2
76 ## [3.4.0] - 2016-04-05
78 - Added `PRAGMA cipher_provider_version`
81 - Merged upstream SQLite 3.11.0
84 - Deprecated `PRAGMA cipher` command
86 ## [3.3.1] - 2015-07-13
88 - Merge upstream SQLite 3.8.10.2
89 - Fixed segfault when provided an invalid cipher name
90 - Check for codec context when performing `PRAGMA cipher_store_pass`
91 - Remove extraneous null check in `PRAGMA cipher_migrate`
93 ## [3.3.0] - 2015-03-25
95 - Added FIPS API calls within the OpenSSL crypto provider
96 - `PRAGMA cipher_default_page_size` - support for attaching non-default page sizes
99 - Merged upstream SQLite 3.8.8.3
101 ## [3.2.0] - 2014-09-30
103 - Added `PRAGMA cipher_store_pass`
106 - Merged upstream SQLite 3.8.6
107 - Renmed README to README.md
109 ## [3.1.0] - 2014-04-23
111 - Added `PRAGMA cipher_profile`
114 - Merged upstream SQLite 3.8.4.3
116 ## [3.0.1] - 2013-12-06
118 - Added `PRAGMA cipher_add_random` to source external entropy
121 - Fix `PRAGMA cipher_migrate` to handle passphrases longer than 64 characters & raw keys
122 - Improvements to the libtomcrypt provider
124 ## [3.0.0] - 2013-11-05
126 - Added `PRAGMA cipher_migrate` to migrate older database file formats
129 - Merged upstream SQLite 3.8.0.2
130 - Remove usage of VirtualLock/Unlock on WinRT and Windows Phone
131 - Ignore HMAC read during Btree file copy
132 - Fix lib naming for pkg-config
133 - Use _v2 version of `sqlite3_key` and `sqlite3_rekey`
134 - Update xcodeproj file
137 - Change KDF iteration length from 4,000 to 64,000
139 [unreleased]: https://github.com/sqlcipher/sqlcipher/compare/v4.0.1...prerelease
140 [4.0.1]: https://github.com/sqlcipher/sqlcipher/compare/v4.0.0...v4.0.1
141 [4.0.0]: https://github.com/sqlcipher/sqlcipher/compare/v3.4.2...v4.0.0
142 [3.4.2]: https://github.com/sqlcipher/sqlcipher/compare/v3.4.1...v3.4.2
143 [3.4.1]: https://github.com/sqlcipher/sqlcipher/compare/v3.4.0...v3.4.1
144 [3.4.0]: https://github.com/sqlcipher/sqlcipher/compare/v3.3.1...v3.4.0
145 [3.3.1]: https://github.com/sqlcipher/sqlcipher/compare/v3.3.0...v3.3.1
146 [3.3.0]: https://github.com/sqlcipher/sqlcipher/compare/v3.2.0...v3.3.0
147 [3.2.0]: https://github.com/sqlcipher/sqlcipher/compare/v3.1.0...v3.2.0
148 [3.1.0]: https://github.com/sqlcipher/sqlcipher/compare/v3.0.1...v3.1.0
149 [3.0.1]: https://github.com/sqlcipher/sqlcipher/compare/v3.0.0...v3.0.1
150 [3.0.0]: https://github.com/sqlcipher/sqlcipher/compare/v2.2.0...v3.0.0
151 [2.2.0]: https://github.com/sqlcipher/sqlcipher/compare/v2.1.1...v2.2.0
152 [2.1.1]: https://github.com/sqlcipher/sqlcipher/compare/v2.1.0...v2.1.1
153 [2.1.0]: https://github.com/sqlcipher/sqlcipher/compare/v2.0.6...v2.1.0
154 [2.0.6]: https://github.com/sqlcipher/sqlcipher/compare/v2.0.5...v2.0.6
155 [2.0.5]: https://github.com/sqlcipher/sqlcipher/compare/v2.0.3...v2.0.5
156 [2.0.3]: https://github.com/sqlcipher/sqlcipher/compare/v2.0.0...v2.0.3
157 [2.0.0]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.10...v2.0.0
158 [1.1.10]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.9...v1.1.10
159 [1.1.9]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.8...v1.1.9
160 [1.1.8]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.7...v1.1.8
161 [1.1.7]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.6...v1.1.7
162 [1.1.6]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.5...v1.1.6
163 [1.1.5]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.4...v1.1.5
164 [1.1.4]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.3...v1.1.4
165 [1.1.3]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.2...v1.1.3
166 [1.1.2]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.1...v1.1.1
167 [1.1.1]: https://github.com/sqlcipher/sqlcipher/compare/v1.1.0...v1.1.1
168 [1.1.0]: https://github.com/sqlcipher/sqlcipher/compare/617ed01...v1.1.0