Skip to content

Commit 9a628d4

Browse files
committed
Swift: Add test for sqlite3 C API.
1 parent 8006996 commit 9a628d4

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
2+
// --- stubs ---
3+
4+
struct Data {
5+
init<S>(_ elements: S) { count = 0 }
6+
7+
func withUnsafeBytes<ResultType, ContentType>(_ body: (UnsafePointer<ContentType>) throws -> ResultType) rethrows -> ResultType {
8+
return 0 as! ResultType//body(0 as UnsafePointer<ContentType>())
9+
}
10+
11+
var count: Int
12+
}
13+
14+
var SQLITE_OK : Int32 = 0
15+
16+
func sqlite3_key_v2(
17+
_ db: OpaquePointer?,
18+
_ zDbName: UnsafePointer<CChar>?,
19+
_ pKey: UnsafeRawPointer?,
20+
_ nKey: Int32
21+
) -> Int32 { return SQLITE_OK }
22+
23+
func sqlite3_rekey_v2(
24+
_ db: OpaquePointer?,
25+
_ zDbName: UnsafePointer<CChar>?,
26+
_ pKey: UnsafeRawPointer?,
27+
_ nKey: Int32
28+
) -> Int32 { return SQLITE_OK }
29+
30+
// --- tests ---
31+
32+
func test_sqlite3_c_api(db: OpaquePointer?, myVarKey: Data) {
33+
let myConstKey = Data("abcdef123456")
34+
35+
// SQLite (C API) Encryption Extension
36+
myVarKey.withUnsafeBytes { buffer in
37+
_ = sqlite3_key_v2(db, "dbname", buffer, Int32(myVarKey.count))
38+
_ = sqlite3_rekey_v2(db, "dbname", buffer, Int32(myVarKey.count))
39+
}
40+
myConstKey.withUnsafeBytes { buffer in
41+
_ = sqlite3_key_v2(db, "dbname", buffer, Int32(myVarKey.count)) // BAD [NOT DETECTED]
42+
_ = sqlite3_rekey_v2(db, "dbname", buffer, Int32(myVarKey.count)) // BAD [NOT DETECTED]
43+
}
44+
}

0 commit comments

Comments
 (0)