Skip to content

Commit 5278bbc

Browse files
committed
C#: Re-factor SymmetricKeyTaintTrackingConfiguration to use the new API.
1 parent 0acca2b commit 5278bbc

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

csharp/ql/lib/semmle/code/csharp/security/cryptography/EncryptionKeyDataFlowQuery.qll

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,11 @@ class SymmetricEncryptionCreateDecryptorSink extends SymmetricEncryptionKeySink
6464
}
6565

6666
/**
67+
* DEPRECATED: Use `SymmetricKey` instead.
68+
*
6769
* Symmetric Key Data Flow configuration.
6870
*/
69-
class SymmetricKeyTaintTrackingConfiguration extends TaintTracking::Configuration {
71+
deprecated class SymmetricKeyTaintTrackingConfiguration extends TaintTracking::Configuration {
7072
SymmetricKeyTaintTrackingConfiguration() { this = "SymmetricKeyTaintTracking" }
7173

7274
/** Holds if the node is a key source. */
@@ -78,3 +80,22 @@ class SymmetricKeyTaintTrackingConfiguration extends TaintTracking::Configuratio
7880
/** Holds if the node is a key sanitizer. */
7981
override predicate isSanitizer(DataFlow::Node sanitizer) { sanitizer instanceof KeySanitizer }
8082
}
83+
84+
/**
85+
* Symmetric Key Data Flow configuration.
86+
*/
87+
private module SymmetricKeyConfig implements DataFlow::ConfigSig {
88+
/** Holds if the node is a key source. */
89+
predicate isSource(DataFlow::Node src) { src instanceof KeySource }
90+
91+
/** Holds if the node is a symmetric encryption key sink. */
92+
predicate isSink(DataFlow::Node sink) { sink instanceof SymmetricEncryptionKeySink }
93+
94+
/** Holds if the node is a key sanitizer. */
95+
predicate isBarrier(DataFlow::Node sanitizer) { sanitizer instanceof KeySanitizer }
96+
}
97+
98+
/**
99+
* Symmetric Key Data Flow configuration.
100+
*/
101+
module SymmetricKey = TaintTracking::Global<SymmetricKeyConfig>;

csharp/ql/src/Security Features/CWE-321/HardcodedEncryptionKey.ql

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import csharp
1717
import semmle.code.csharp.security.cryptography.EncryptionKeyDataFlowQuery
18-
import DataFlow::PathGraph
18+
import SymmetricKey::PathGraph
1919

2020
/**
2121
* The creation of a literal byte array.
@@ -38,10 +38,10 @@ class StringLiteralSource extends KeySource {
3838
}
3939

4040
from
41-
SymmetricKeyTaintTrackingConfiguration keyFlow, DataFlow::PathNode source,
42-
DataFlow::PathNode sink, KeySource srcNode, SymmetricEncryptionKeySink sinkNode
41+
SymmetricKey::PathNode source, SymmetricKey::PathNode sink, KeySource srcNode,
42+
SymmetricEncryptionKeySink sinkNode
4343
where
44-
keyFlow.hasFlowPath(source, sink) and
44+
SymmetricKey::flowPath(source, sink) and
4545
source.getNode() = srcNode and
4646
sink.getNode() = sinkNode
4747
select sink.getNode(), source, sink,

0 commit comments

Comments
 (0)