Skip to content

Commit d9c0b9c

Browse files
committed
Swift: Additional test cases for CryptoKit.
1 parent b44bca9 commit d9c0b9c

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

swift/ql/test/query-tests/Security/CWE-328/testCryptoKit.swift

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,3 +219,36 @@ func testBadExample(passwordString: String) {
219219
// ...
220220
}
221221
}
222+
223+
func testWithFlowAndMetatypes(cardNumber: String) {
224+
let value1 = Data(cardNumber.utf8);
225+
let _digest1 = Insecure.MD5.hash(data: value1); // BAD [NOT DETECTED]
226+
227+
let value2 = Data(cardNumber.utf8);
228+
let hasher2 = Insecure.MD5.self; // metatype
229+
let _digest2 = hasher2.hash(data: value2); // BAD [NOT DETECTED]
230+
231+
let value3 = Data(cardNumber.utf8);
232+
let _digest3 = (Insecure.MD5.self).hash(data: value3); // BAD [NOT DETECTED]
233+
234+
let value4 = Data(cardNumber.utf8);
235+
testReceiver1(value: value4);
236+
237+
let value5 = Data(cardNumber.utf8);
238+
testReceiver2(hasher: Insecure.MD5.self, value: value5);
239+
240+
let value6 = Data(cardNumber.utf8);
241+
testReceiver3(hasher: Insecure.MD5.self, value: value6);
242+
}
243+
244+
func testReceiver1(value: Data) {
245+
let _digest = Insecure.MD5.hash(data: value); // BAD [NOT DETECTED]
246+
}
247+
248+
func testReceiver2(hasher: Insecure.MD5.Type, value: Data) {
249+
let _digest = hasher.hash(data: value); // BAD [NOT DETECTED]
250+
}
251+
252+
func testReceiver3<H: HashFunction>(hasher: H.Type, value: Data) {
253+
let _digest = hasher.hash(data: value); // BAD [NOT DETECTED]
254+
}

0 commit comments

Comments
 (0)