1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
--- Makefile.in
+++ Makefile.in
@@ -163,8 +163,8 @@
#
LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \
backup.lo bitvec.lo btmutex.lo btree.lo build.lo \
- callback.lo complete.lo ctime.lo date.lo db_pragma.lo db_shell.lo \
- delete.lo expr.lo fault.lo fkey.lo \
+ callback.lo complete.lo ctime.lo date.lo db_encrypt.lo db_pragma.lo \
+ db_shell.lo delete.lo expr.lo fault.lo fkey.lo \
fts3.lo fts3_aux.lo fts3_expr.lo fts3_hash.lo fts3_icu.lo fts3_porter.lo \
fts3_snippet.lo fts3_tokenizer.lo fts3_tokenizer1.lo fts3_write.lo \
func.lo global.lo hash.lo \
@@ -207,6 +208,7 @@
$(TOP)/src/complete.c \
$(TOP)/src/ctime.c \
$(TOP)/src/date.c \
+ $(TOP)/../adapter/db_encrypt.c \
$(TOP)/../adapter/db_pragma.c \
$(TOP)/../adapter/db_shell.c \
$(TOP)/src/delete.c \
@@ -580,6 +581,10 @@
date.lo: $(TOP)/src/date.c $(HDR)
$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)/src/date.c
+db_encrypt.lo: $(TOP)/../adapter/db_encrypt.c $(HDR) \
+ $(TOP)/../adapter/btreeInt.h
+ $(LTCOMPILE) $(TEMP_STORE) -c $(TOP)/../adapter/db_encrypt.c
+
db_pragma.lo: $(TOP)/../adapter/db_pragma.c $(HDR) \
$(TOP)/../adapter/btreeInt.h
$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)/../adapter/db_pragma.c
--- src/tclsqlite.c
+++ src/tclsqlite.c
@@ -2864,6 +2864,9 @@
const char *zFile;
const char *zVfs = 0;
int flags;
+#ifdef SQLITE_HAS_CODEC
+ int rc;
+#endif
Tcl_DString translatedFilename;
/* In normal use, each TCL interpreter runs in a single thread. So
@@ -2968,7 +2971,13 @@
}
#ifdef SQLITE_HAS_CODEC
if( p->db ){
- sqlite3_key(p->db, pKey, nKey);
+ rc = sqlite3_key(p->db, pKey, nKey);
+ if( rc ){
+ zErrMsg = sqlite3_mprintf("%s", sqlite3ErrStr(rc));
+ sqlite3_close(p->db);
+ p->db = 0;
+ }
+
}
#endif
if( p->db==0 ){
--- test/vtab1.test
+++ test/vtab1.test
@@ -849,8 +849,12 @@
ifcapable attach {
do_test vtab1.8-1 {
set echo_module ""
+ set key ""
+ if {[sqlite -has-codec]} {
+ set key "xyzzy"
+ }
execsql {
- ATTACH 'test2.db' AS aux;
+ ATTACH 'test2.db' AS aux KEY $key;
CREATE VIRTUAL TABLE aux.e2 USING echo(real_abc);
}
set echo_module
--- tool/mksqlite3c.tcl
+++ tool/mksqlite3c.tcl
@@ -250,6 +250,7 @@
btmutex.c
btree.c
backup.c
+ db_encrypt.c
db_pragma.c
db_shell.c
|