A fork of https://github.com/laggykiller/sqlcipher3, namespaced on Pypi as bouquin-sqlcipher to not namesquat the upstream later should they use it https://pypi.org/project/bouquin-sqlcipher4/
Find a file
Charles Leifer 7d4e2f4edd Fixes based on comments regarding building on windows.
Specifically, python 3.9 and newer does not consume quotes on the
command line, so additional escaping is not needed.

Secondly, openssl lib name may be libcrypto.lib on newer openssl
versions, so I've added an option to specify this with an environment
variable OPENSSL_LIBNAME (which defaults to libeay32.lib for now).
2020-12-21 04:42:34 -06:00
.github/workflows Replace travis-ci with github actions for CI. 2020-12-16 16:18:23 -06:00
build-scripts 0.4.1 2020-01-30 14:23:04 +00:00
sqlcipher3 Don't check in the shared library :x 2019-09-03 23:31:59 -05:00
src Apply changes from pysqlite3. 2020-11-04 14:15:32 -06:00
test Apply changes from pysqlite3. 2020-11-04 14:15:32 -06:00
.gitignore Don't check in the shared library :x 2019-09-03 23:31:59 -05:00
LICENSE Initial commit. 2019-06-03 09:03:53 -05:00
MANIFEST.in Initial commit. 2019-06-03 09:03:53 -05:00
README.md Update README with notes on the binary package. 2019-09-05 14:57:42 -05:00
setup.cfg Rename package folder, update build configs. 2019-09-03 22:37:23 -05:00
setup.py Fixes based on comments regarding building on windows. 2020-12-21 04:42:34 -06:00

sqlcipher3

This library takes pysqlite3 and makes some small modifications so it is suitable for use with sqlcipher (sqlite with encryption).

Additional features:

  • User-defined window functions (requires SQLite >= 3.25)
  • Flags and VFS an be specified when opening connection
  • Incremental BLOB I/O, bpo-24905
  • Improved error messages, bpo-16379
  • Simplified detection of DML statements via sqlite3_stmt_readonly.
  • Sqlite native backup API (also present in standard library 3.7 and newer).

A completely self-contained binary package (wheel) is available for versions 0.4.0 and newer as sqlcipher3-binary. This package contains the latest release of sqlcipher compiled with numerous extensions, and requires no external dependencies.

Building with System SQLCipher

To build sqlcipher3 linked against the system SQLCipher, run:

$ python setup.py build

Building a statically-linked library

To build sqlcipher3 statically-linked against a particular version of SQLCipher, you need to obtain the SQLCipher source code and copy sqlite3.c and sqlite3.h into the source tree.

# Download the latest version of SQLCipher source code and build the source
# amalgamation files (sqlite3.c and sqlite3.h).
$ git clone https://github.com/sqlcipher/sqlcipher
$ cd sqlcipher/
$ ./configure
$ make sqlite3.c

# Copy the sqlcipher amalgamation files into the root of the sqlcipher3
# checkout and run build_static + build:
$ cp sqlcipher/sqlite3.[ch] sqlcipher3/
$ cd sqlcipher3
$ python setup.py build_static build

You now have a statically-linked, completely self-contained sqlcipher3.

Using the binary package

A binary package (wheel) is available for linux with a completely self-contained sqlcipher3, statically-linked against the most recent release of sqlcipher.

$ pip install sqlcipher3-binary