@@ -17,8 +17,7 @@ SQLCipher is maintained by Zetetic, LLC, and additional information and document
1717- 100% of data in the database file is encrypted
1818- Good security practices (CBC mode, HMAC, key derivation)
1919- Zero-configuration and application level cryptography
20- - Algorithms provided by the peer reviewed OpenSSL crypto library.
21- - Configurable crypto providers
20+ - Support for multiple cryptographic providers
2221
2322## Compatibility
2423
@@ -32,26 +31,18 @@ The SQLCipher team welcomes contributions to the core library. All contributions
3231
3332## Compiling
3433
35- Building SQLCipher is similar to compiling a regular version of SQLite from source, with a couple of small exceptions:
34+ Building SQLCipher is similar to compiling a regular version of SQLite from source, with a few small exceptions. You must :
3635
37- 1 . You * must* define ` SQLITE_HAS_CODEC ` and either ` SQLITE_TEMP_STORE=2 ` or ` SQLITE_TEMP_STORE=3 `
38- 2 . You will need to link against a support cryptographic provider (OpenSSL, LibTomCrypt, CommonCrypto/Security.framework, or NSS)
36+ 1 . define ` SQLITE_HAS_CODEC `
37+ 2 . define ` SQLITE_TEMP_STORE=2 ` or ` SQLITE_TEMP_STORE=3 ` (or use ` configure ` 's --with-tempstore=yes option)
38+ 3 . define ` SQLITE_EXTRA_INIT=sqlcipher_extra_init ` and ` SQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown `
39+ 4 . define ` SQLITE_THREADSAFE ` to ` 1 ` or ` 2 ` (enabled automatically by ` configure ` )
40+ 2 . compile and link with a supported cryptographic provider (OpenSSL, LibTomCrypt, CommonCrypto/Security.framework, or NSS)
3941
40- The following examples demonstrate linking against OpenSSL, which is a readily available provider on most Unix-like systems.
41-
42- Example 1. Static linking (replace /opt/local/lib with the path to libcrypto.a). Note in this
43- example, ` --with-tempstore=yes ` is setting ` SQLITE_TEMP_STORE=2 ` for the build.
44-
45- ```
46- $ ./configure --with-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
47- LDFLAGS="/opt/local/lib/libcrypto.a"
48- $ make
49- ```
50-
51- Example 2. Dynamic linking
42+ The following examples demonstrate use of OpenSSL, which is a readily available provider on most Unix-like systems. Note that, in this example, ` --with-tempstore=yes ` is setting ` SQLITE_TEMP_STORE=2 ` for the build, and ` SQLITE_THREADSAFE ` has a default value of ` 1 ` .
5243
5344```
54- $ ./configure --with-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
45+ $ ./configure --with-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC -DSQLITE_EXTRA_INIT=sqlcipher_extra_init -DSQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown " \
5546 LDFLAGS="-lcrypto"
5647$ make
5748```
@@ -65,7 +56,7 @@ As a result, the SQLCipher package includes it's own independent tests that exer
6556To run SQLCipher specific tests, configure as described here and run the following to execute the tests and receive a report of the results:
6657
6758```
68- $ ./configure --with-tempstore=yes --enable-fts5 CFLAGS="-DSQLITE_HAS_CODEC -DSQLCIPHER_TEST" \
59+ $ ./configure --with-tempstore=yes --enable-fts5 CFLAGS="-DSQLITE_HAS_CODEC -DSQLITE_EXTRA_INIT=sqlcipher_extra_init -DSQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown - DSQLCIPHER_TEST" \
6960 LDFLAGS="-lcrypto"
7061$ make testfixture
7162$ ./testfixture test/sqlcipher.test
@@ -133,7 +124,7 @@ support@zetetic.net!
133124
134125## Community Edition Open Source License
135126
136- Copyright (c) 2020 , ZETETIC LLC
127+ Copyright (c) 2025 , ZETETIC LLC
137128All rights reserved.
138129
139130Redistribution and use in source and binary forms, with or without
0 commit comments