Skip to content

Commit cc23ba3

Browse files
committed
Swift: Use DataFlow::ConfigSig in HardcodedEncryptionKey.ql
1 parent 1592b57 commit cc23ba3

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

swift/ql/src/queries/Security/CWE-321/HardcodedEncryptionKey.ql

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import swift
1414
import codeql.swift.dataflow.DataFlow
1515
import codeql.swift.dataflow.TaintTracking
16-
import DataFlow::PathGraph
16+
import HardcodedKeyFlow::PathGraph
1717

1818
/**
1919
* An `Expr` that is used to initialize a key.
@@ -62,17 +62,17 @@ class EncryptionKeySink extends Expr {
6262
* A taint configuration from the key source to expressions that use
6363
* it to initialize a cipher.
6464
*/
65-
class HardcodedKeyConfig extends TaintTracking::Configuration {
66-
HardcodedKeyConfig() { this = "HardcodedKeyConfig" }
65+
module HardcodedKeyConfig implements DataFlow::ConfigSig {
66+
predicate isSource(DataFlow::Node node) { node.asExpr() instanceof KeySource }
6767

68-
override predicate isSource(DataFlow::Node node) { node.asExpr() instanceof KeySource }
69-
70-
override predicate isSink(DataFlow::Node node) { node.asExpr() instanceof EncryptionKeySink }
68+
predicate isSink(DataFlow::Node node) { node.asExpr() instanceof EncryptionKeySink }
7169
}
7270

71+
module HardcodedKeyFlow = TaintTracking::Global<HardcodedKeyConfig>;
72+
7373
// The query itself
74-
from HardcodedKeyConfig config, DataFlow::PathNode sourceNode, DataFlow::PathNode sinkNode
75-
where config.hasFlowPath(sourceNode, sinkNode)
74+
from HardcodedKeyFlow::PathNode sourceNode, HardcodedKeyFlow::PathNode sinkNode
75+
where HardcodedKeyFlow::flowPath(sourceNode, sinkNode)
7676
select sinkNode.getNode(), sourceNode, sinkNode,
7777
"The key '" + sinkNode.getNode().toString() +
7878
"' has been initialized with hard-coded values from $@.", sourceNode,

0 commit comments

Comments
 (0)