@@ -39,9 +39,10 @@ file delete -force test.db
39
39
file delete -force test2.db
40
40
file delete -force test3.db
41
41
file delete -force test4.db
42
-
42
+
43
43
set testdir [file dirname $argv0]
44
44
source $testdir/tester.tcl
45
+ set sampleDir [file normalize [file dirname [file dirname $argv0]]]
45
46
set old_pending_byte [sqlite3_test_control_pending_byte 0x40000000]
46
47
47
48
# If the library is not compiled with has_codec support then
@@ -991,7 +992,7 @@ file delete -force test.db
991
992
992
993
# open a 1.1.8 database using the new code, HMAC disabled
993
994
do_test open-1.1.8-database {
994
- file copy -force sqlcipher-1.1.8-testkey.db test.db
995
+ file copy -force $sampleDir/ sqlcipher-1.1.8-testkey.db test.db
995
996
sqlite_orig db test.db
996
997
execsql {
997
998
PRAGMA key = 'testkey';
@@ -1006,8 +1007,8 @@ file delete -force test.db
1006
1007
1007
1008
# open a 1.1.8 database without hmac, then copy the data
1008
1009
do_test attach-and-copy-1.1.8 {
1009
- sqlite_orig db sqlcipher-1.1.8-testkey.db
1010
-
1010
+ sqlite_orig db $sampleDir/ sqlcipher-1.1.8-testkey.db
1011
+
1011
1012
execsql {
1012
1013
PRAGMA key = 'testkey';
1013
1014
PRAGMA cipher_use_hmac = OFF;
@@ -1474,7 +1475,8 @@ file delete -force test.db
1474
1475
# attached database should have the same hmac
1475
1476
# setting as the original
1476
1477
do_test default-hmac-kdf-attach {
1477
- file copy -force sqlcipher-1.1.8-testkey.db test.db
1478
+ file copy -force $sampleDir/sqlcipher-1.1.8-testkey.db test.db
1479
+ file copy -force $sampleDir/sqlcipher-1.1.8-testkey.db sqlcipher-1.1.8-testkey.db;
1478
1480
sqlite_orig db test.db
1479
1481
execsql {
1480
1482
PRAGMA cipher_default_use_hmac = OFF;
@@ -1489,12 +1491,14 @@ do_test default-hmac-kdf-attach {
1489
1491
} {75709 75709}
1490
1492
db close
1491
1493
file delete -force test.db
1494
+ file delete -force sqlcipher-1.1.8-testkey.db
1492
1495
1493
1496
# open a 2.0 database (with HMAC), then
1494
1497
# try to a 1.1.8 database. this should
1495
1498
# fail because the hmac setting for the
1496
1499
# attached database is not compatible
1497
1500
do_test attach-1.1.8-database-from-2.0-fails {
1501
+ file copy -force $sampleDir/sqlcipher-1.1.8-testkey.db sqlcipher-1.1.8-testkey.db;
1498
1502
sqlite_orig db test.db
1499
1503
catchsql {
1500
1504
PRAGMA key = 'testkey';
@@ -1504,13 +1508,15 @@ do_test attach-1.1.8-database-from-2.0-fails {
1504
1508
} {1 {file is encrypted or is not a database}}
1505
1509
db close
1506
1510
file delete -force test.db
1511
+ file delete -force sqlcipher-1.1.8-testkey.db
1507
1512
1508
1513
# open a 2.0 database (with HMAC, 4k iter), then
1509
1514
# set the default hmac setting to OFF.
1510
1515
# try to a 1.1.8 database. this should
1511
1516
# succeed now that hmac is off by default
1512
1517
# before the attach
1513
1518
do_test change-default-hmac-kdf-attach {
1519
+ file copy -force $sampleDir/sqlcipher-1.1.8-testkey.db sqlcipher-1.1.8-testkey.db;
1514
1520
sqlite_orig db test.db
1515
1521
execsql {
1516
1522
PRAGMA key = 'testkey';
@@ -1532,6 +1538,7 @@ do_test change-default-hmac-kdf-attach {
1532
1538
} {1 75709}
1533
1539
db close
1534
1540
file delete -force test.db
1541
+ file delete -force sqlcipher-1.1.8-testkey.db
1535
1542
1536
1543
# verify the pragma cipher_version
1537
1544
# returns the currently configured
@@ -1706,7 +1713,7 @@ file delete -force test.db
1706
1713
# open a 3.0 database with little endian hmac page numbers (default)
1707
1714
# verify it can be opened
1708
1715
do_test open-3.0-le-database {
1709
- sqlite_orig db sqlcipher-3.0-testkey.db
1716
+ sqlite_orig db $sampleDir/ sqlcipher-3.0-testkey.db
1710
1717
execsql {
1711
1718
PRAGMA key = 'testkey';
1712
1719
SELECT count(*) FROM t1;
@@ -1718,7 +1725,7 @@ db close
1718
1725
# open a 2.0 database with little endian hmac page numbers (default)
1719
1726
# verify it can be opened
1720
1727
do_test open-2.0-le-database {
1721
- sqlite_orig db sqlcipher-2.0-le-testkey.db
1728
+ sqlite_orig db $sampleDir/ sqlcipher-2.0-le-testkey.db
1722
1729
execsql {
1723
1730
PRAGMA key = 'testkey';
1724
1731
PRAGMA kdf_iter = 4000;
@@ -1731,7 +1738,7 @@ db close
1731
1738
# open a 2.0 database with big-endian hmac page numbers
1732
1739
# verify it can be opened
1733
1740
do_test open-2.0-be-database {
1734
- sqlite_orig db sqlcipher-2.0-be-testkey.db
1741
+ sqlite_orig db $sampleDir/ sqlcipher-2.0-be-testkey.db
1735
1742
execsql {
1736
1743
PRAGMA key = 'testkey';
1737
1744
PRAGMA cipher_hmac_pgno = be;
@@ -1747,7 +1754,7 @@ db close
1747
1754
# copy schema between the two, and verify the latter
1748
1755
# can be opened
1749
1756
do_test be-to-le-migration {
1750
- sqlite_orig db sqlcipher-2.0-be-testkey.db
1757
+ sqlite_orig db $sampleDir/ sqlcipher-2.0-be-testkey.db
1751
1758
1752
1759
execsql {
1753
1760
PRAGMA key = 'testkey';
@@ -2015,7 +2022,7 @@ file delete -force test.db
2015
2022
# hmac salt mask
2016
2023
# verify it can be opened
2017
2024
do_test open-2.0-beta-database {
2018
- sqlite_orig db sqlcipher-2.0-beta-testkey.db
2025
+ sqlite_orig db $sampleDir/ sqlcipher-2.0-beta-testkey.db
2019
2026
execsql {
2020
2027
PRAGMA key = 'testkey';
2021
2028
PRAGMA kdf_iter = 4000;
@@ -2032,7 +2039,7 @@ db close
2032
2039
# copy schema between the two, and verify the latter
2033
2040
# can be opened
2034
2041
do_test 2.0-beta-to-2.0-migration {
2035
- sqlite_orig db sqlcipher-2.0-beta-testkey.db
2042
+ sqlite_orig db $sampleDir/ sqlcipher-2.0-beta-testkey.db
2036
2043
2037
2044
execsql {
2038
2045
PRAGMA key = 'testkey';
@@ -2080,7 +2087,7 @@ db close
2080
2087
file delete -force test.db
2081
2088
2082
2089
do_test migrate-1.1.8-database-to-3x-format {
2083
- file copy -force sqlcipher-1.1.8-testkey.db test.db
2090
+ file copy -force $sampleDir/ sqlcipher-1.1.8-testkey.db test.db
2084
2091
sqlite_orig db test.db
2085
2092
execsql {
2086
2093
PRAGMA key = 'testkey';
@@ -2098,7 +2105,7 @@ db close
2098
2105
file delete -force test.db
2099
2106
2100
2107
do_test migrate-2-0-le-database-to-3x-format {
2101
- file copy -force sqlcipher-2.0-le-testkey.db test.db
2108
+ file copy -force $sampleDir/ sqlcipher-2.0-le-testkey.db test.db
2102
2109
sqlite_orig db test.db
2103
2110
execsql {
2104
2111
PRAGMA key = 'testkey';
0 commit comments