|
4 | 4 | */
|
5 | 5 |
|
6 | 6 | import csharp
|
| 7 | +private import semmle.code.csharp.dataflow.ExternalFlow |
7 | 8 |
|
8 | 9 | module HardcodedSymmetricEncryptionKey {
|
9 | 10 | private import semmle.code.csharp.frameworks.system.security.cryptography.SymmetricAlgorithm
|
@@ -46,22 +47,24 @@ module HardcodedSymmetricEncryptionKey {
|
46 | 47 | override string getDescription() { result = "'Key' property assignment" }
|
47 | 48 | }
|
48 | 49 |
|
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 | + ] |
54 | 57 | }
|
| 58 | + } |
| 59 | + |
| 60 | + private class SymmetricAlgorithmCreateEncryptorSink extends Sink { |
| 61 | + SymmetricAlgorithmCreateEncryptorSink() { sinkNode(this, "encryption-encryptor") } |
55 | 62 |
|
56 | 63 | override string getDescription() { result = "Encryptor(rgbKey, IV)" }
|
57 | 64 | }
|
58 | 65 |
|
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") } |
65 | 68 |
|
66 | 69 | override string getDescription() { result = "Decryptor(rgbKey, IV)" }
|
67 | 70 | }
|
|
0 commit comments