We just committed a deep refactoring of the SynSQlite3Static.pas
unit - and all units using static linking for FPC.
It also includes a new encryption format for SQlite3, using AES, so
much more secure than the previous one.
This is a breaking change, so worth a blog article!
Now all static .o .a
files are located in a static sub-folder in
the source code.
Please delete the previous fpc-*
folders, which are deprecated and
should not be used.
It has been deployed under GitHub, or you need
to download a new version of sqlite3fpc.7z if you used
our nightly build from fossil.
This will allow to set "Libraries -fFl"
in your FPC project
options as safe and sound
(...)\static\$(TargetCPU)-$(TargetOS)
The new SQlite3 encryption is based on our SynCrypto unit,
so it uses AES-NI acceleration, if available. Performance impact is minimal,
much lower than the one included e.g. with wxSqlite3, and with a safer
implementation (explicit AES-OFB mode with fast IV derivation and proven PBKDF2
password reduction).
It also allows to use a plain/official/unpatched amalgamation
sqlite3.c
file, so it is easier to maintain as
cross-platform.
You can easily convert existing encrypted databases using IsOldSQLEncryptTable
and OldSQLEncryptTablePassWordToPlain
functions.
Of course, it will also work with Delphi, so that Win32 statically linked sqlite3.obj will offer this new encryption.
Comments are welcome on our forum, as usual.