Update README to reflect current build options, hex key pragmas, and rekey functionality
This commit is contained in:
parent
59ef6e1f46
commit
c8f4309d3f
28
README
28
README
|
@ -19,12 +19,12 @@ Building SQLite Cipher is almost the same as compiling a regular version of SQLi
|
||||||
|
|
||||||
Example Static linking (replace /opt/local/lib with the path to libcrypto.a)
|
Example Static linking (replace /opt/local/lib with the path to libcrypto.a)
|
||||||
|
|
||||||
./configure --disable-amalgamation CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="/opt/local/lib/libcrypto.a"
|
./configure CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="/opt/local/lib/libcrypto.a"
|
||||||
make
|
make
|
||||||
|
|
||||||
Example Dynamic linking
|
Example Dynamic linking
|
||||||
|
|
||||||
./configure --disable-amalgamation CFLAGS="-DSQLITE_HAS_CODEC -lcrypto"
|
./configure CFLAGS="-DSQLITE_HAS_CODEC -lcrypto"
|
||||||
make
|
make
|
||||||
|
|
||||||
[Encrypting a database]
|
[Encrypting a database]
|
||||||
|
@ -40,7 +40,7 @@ use this method it is your responsibility to ensure that the data you provide a
|
||||||
64 character hex string, which will be converted directly to 32 bytes (256 bits) of
|
64 character hex string, which will be converted directly to 32 bytes (256 bits) of
|
||||||
key data.
|
key data.
|
||||||
|
|
||||||
PRAGMA key = "x'2DD29CA851E7B56E4697B0E1F08507293D761A05CE4D1B628663F411A8086D99'";
|
PRAGMA hexkey = '2DD29CA851E7B56E4697B0E1F08507293D761A05CE4D1B628663F411A8086D99';
|
||||||
|
|
||||||
To encrypt a database programatically you can use the sqlite3_key function. The data provided
|
To encrypt a database programatically you can use the sqlite3_key function. The data provided
|
||||||
in pKey is converted to an encryption key according to the same rules as PRAGMA key.
|
in pKey is converted to an encryption key according to the same rules as PRAGMA key.
|
||||||
|
@ -49,8 +49,26 @@ in pKey is converted to an encryption key according to the same rules as PRAGMA
|
||||||
|
|
||||||
PRAGMA key or sqlite3_key should be called as the first operation when a database is open.
|
PRAGMA key or sqlite3_key should be called as the first operation when a database is open.
|
||||||
|
|
||||||
Note: It is not currently possible to change the encryption key once a database is created. We're
|
[Changing a database key]
|
||||||
working on implementing rekey functionality.
|
|
||||||
|
To change the encryption passphrase for an existing database you should use the rekey pragma
|
||||||
|
after you've supplied the correct database password;
|
||||||
|
|
||||||
|
PRAGMA key = 'passphrase'; -- start with the existing database passphrase
|
||||||
|
PRAGMA rekey = 'new-passphrase'; -- rekey will reencrypt the database with the new passphrase
|
||||||
|
|
||||||
|
The hexrekey pragma may be used to rekey to a specific binary value
|
||||||
|
|
||||||
|
PRAGMA hexrekey = '2DD29CA851E7B56E4697B0E1F08507293D761A05CE4D1B628663F411A8086D99';
|
||||||
|
|
||||||
|
This can be accomplished programtically by using sqlite3_rekey;
|
||||||
|
|
||||||
|
sqlite3_rekey(sqlite3 *db, const void *pKey, int nKey)
|
||||||
|
|
||||||
|
[Encrypting a standard database]
|
||||||
|
|
||||||
|
To encrypt a standard (non-enrypted) database file, use the rekey methods described above, but
|
||||||
|
don't provide an initial key..
|
||||||
|
|
||||||
[License]
|
[License]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue