Skip to content

Commit 8bf6fd6

Browse files
committed
Swift: Add a test for GRDB hardcoded key sinks.
1 parent 8e653d0 commit 8bf6fd6

File tree

1 file changed

+34
-0
lines changed
  • swift/ql/test/query-tests/Security/CWE-321

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
// --- stubs ---
3+
4+
class Data {
5+
init<S>(_ elements: S) {}
6+
}
7+
8+
class Database {
9+
}
10+
11+
extension Database {
12+
func usePassphrase(_ passphrase: String) throws { }
13+
func usePassphrase(_ passphrase: Data) throws { }
14+
func changePassphrase(_ passphrase: String) throws { }
15+
func changePassphrase(_ passphrase: Data) throws { }
16+
}
17+
18+
// --- tests ---
19+
20+
func test(db: Database, varString: String, varArray: Array<UInt8>, varData: Data) throws {
21+
let constString = "abc123"
22+
let constArray: Array<UInt8> = [1, 2, 3, 4, 5, 6]
23+
let constData = Data(constArray)
24+
25+
// GRDB
26+
try db.usePassphrase(varString)
27+
try db.usePassphrase(constString) // BAD: constant key [NOT DETECTED]
28+
try db.usePassphrase(varData)
29+
try db.usePassphrase(constData) // BAD: constant key [NOT DETECTED]
30+
try db.changePassphrase(varString)
31+
try db.changePassphrase(constString) // BAD: constant key [NOT DETECTED]
32+
try db.changePassphrase(Data(varArray))
33+
try db.changePassphrase(constData) // BAD: constant key [NOT DETECTED]
34+
}

0 commit comments

Comments
 (0)