Comment by jedisct1
17 hours ago
"Sqlite [...] encryption extension is a $2000 add-on".
SqliteMultipleCiphers has been around for ages and is free https://utelle.github.io/SQLite3MultipleCiphers/
And Turso Database supports encryption out of the box: https://docs.turso.tech/tursodb/encryption
How do you use these in practice? Both Python and Go don’t make it easy to link a different variation of SQLite with one of these plugins compiled in. How do you make it work?
I don't think SqliteMultipleCiphers can be built into a runtime loadable extension (and the Turso thing is just a copy of it).
I'm confident that a scheme based on tweakable block cyphers (like Adiantum or AES XTS) could be made into decent runtime loadable extension.
I implemented such schemes for my Go driver, but Go code is not really ideal to make a runtime loadable extension of (it'd have to be ported to C/Rust/zig).
https://news.ycombinator.com/item?id=40208800
There’s also SQLCipher, it’s been in development since 2009 and works quite well:
https://github.com/sqlcipher/sqlcipher