@@ -4,12 +4,22 @@ import SQLiteCipher
44class CipherTests : XCTestCase {
55
66 let db = try ! Connection ( )
7+ let db2 = try ! Connection ( )
78
89 override func setUp( ) {
10+ // db
911 try ! db. key ( " hello " )
1012
1113 try ! db. run ( " CREATE TABLE foo (bar TEXT) " )
1214 try ! db. run ( " INSERT INTO foo (bar) VALUES ('world') " )
15+
16+ // db2
17+ let keyData = NSMutableData ( length: 64 ) !
18+ let _ = SecRandomCopyBytes ( kSecRandomDefault, 64 , UnsafeMutablePointer < UInt8 > ( keyData. mutableBytes) )
19+ try ! db2. key ( Blob ( bytes: keyData. bytes, length: keyData. length) )
20+
21+ try ! db2. run ( " CREATE TABLE foo (bar TEXT) " )
22+ try ! db2. run ( " INSERT INTO foo (bar) VALUES ('world') " )
1323
1424 super. setUp ( )
1525 }
@@ -22,6 +32,18 @@ class CipherTests: XCTestCase {
2232 try ! db. rekey ( " goodbye " )
2333 XCTAssertEqual ( 1 , db. scalar ( " SELECT count(*) FROM foo " ) as? Int64 )
2434 }
35+
36+ func test_data_key( ) {
37+ XCTAssertEqual ( 1 , db2. scalar ( " SELECT count(*) FROM foo " ) as? Int64 )
38+ }
39+
40+ func test_data_rekey( ) {
41+ let keyData = NSMutableData ( length: 64 ) !
42+ SecRandomCopyBytes ( kSecRandomDefault, 64 , UnsafeMutablePointer < UInt8 > ( keyData. mutableBytes) )
43+
44+ try ! db2. rekey ( Blob ( bytes: keyData. bytes, length: keyData. length) )
45+ XCTAssertEqual ( 1 , db2. scalar ( " SELECT count(*) FROM foo " ) as? Int64 )
46+ }
2547
2648 func test_keyFailure( ) {
2749 let path = " \( NSTemporaryDirectory ( ) ) /db.sqlite3 "
0 commit comments