Skip to content

Commit 383ad51

Browse files
committed
C#: Use CSV format for CreateEncryptor and CreateDecryptor sinks.
1 parent e6e82ef commit 383ad51

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

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

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55

66
import csharp
7+
private import semmle.code.csharp.dataflow.ExternalFlow
78

89
module HardcodedSymmetricEncryptionKey {
910
private import semmle.code.csharp.frameworks.system.security.cryptography.SymmetricAlgorithm
@@ -46,22 +47,24 @@ module HardcodedSymmetricEncryptionKey {
4647
override string getDescription() { result = "'Key' property assignment" }
4748
}
4849

49-
private class SymmetricEncryptionCreateEncryptorSink extends Sink {
50-
SymmetricEncryptionCreateEncryptorSink() {
51-
exists(SymmetricAlgorithm ag, MethodCall mc | mc = ag.getASymmetricEncryptor() |
52-
this.asExpr() = mc.getArgumentForName("rgbKey")
53-
)
50+
private class SymmetricAlgorithmCreateSinkCsv extends SinkModelCsv {
51+
override predicate row(string row) {
52+
row =
53+
[
54+
"System.Security.Cryptography;SymmetricAlgorithm;true;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor",
55+
"System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor"
56+
]
5457
}
58+
}
59+
60+
private class SymmetricAlgorithmCreateEncryptorSink extends Sink {
61+
SymmetricAlgorithmCreateEncryptorSink() { sinkNode(this, "encryption-encryptor") }
5562

5663
override string getDescription() { result = "Encryptor(rgbKey, IV)" }
5764
}
5865

59-
private class SymmetricEncryptionCreateDecryptorSink extends Sink {
60-
SymmetricEncryptionCreateDecryptorSink() {
61-
exists(SymmetricAlgorithm ag, MethodCall mc | mc = ag.getASymmetricDecryptor() |
62-
this.asExpr() = mc.getArgumentForName("rgbKey")
63-
)
64-
}
66+
private class SymmetricAlgorithmCreateDecryptorSink extends Sink {
67+
SymmetricAlgorithmCreateDecryptorSink() { sinkNode(this, "encryption-decryptor") }
6568

6669
override string getDescription() { result = "Decryptor(rgbKey, IV)" }
6770
}

0 commit comments

Comments
 (0)