File tree Expand file tree Collapse file tree
swift/ql/test/query-tests/Security/CWE-328 Expand file tree Collapse file tree Original file line number Diff line number Diff 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+ }
You can’t perform that action at this time.
0 commit comments