Skip to content

Commit b4ecb91

Browse files
committed
Crypto: Add missing cipher algorithms to JCA. Update node tests to account for missing cipher algorithms.
1 parent f480d90 commit b4ecb91

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

java/ql/lib/experimental/quantum/JCA.qll

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ module JCAModel {
2626
algo.toUpperCase()
2727
.matches([
2828
"AES", "AESWrap", "AESWrapPad", "ARCFOUR", "Blowfish", "ChaCha20", "ChaCha20-Poly1305",
29-
"DES", "DESede", "DESedeWrap", "ECIES", "PBEWith%", "RC2", "RC4", "RC5", "RSA"
29+
"DES", "DESede", "DESedeWrap", "ECIES", "PBEWith%", "RC2", "RC4", "RC5", "RSA",
30+
"Skipjack", "Idea"
3031
].toUpperCase())
3132
}
3233

@@ -190,7 +191,8 @@ module JCAModel {
190191
upper.matches("AES%") and
191192
type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::AES())
192193
or
193-
upper = "DES" and
194+
// NOTE: there is DES and DESede
195+
upper.matches("DES%") and
194196
type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DES())
195197
or
196198
upper = "TRIPLEDES" and
@@ -205,6 +207,9 @@ module JCAModel {
205207
upper = "CHACHA20" and
206208
type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::CHACHA20())
207209
or
210+
upper = "RC2" and
211+
type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC2())
212+
or
208213
upper = "RC4" and
209214
type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC4())
210215
or
@@ -213,6 +218,12 @@ module JCAModel {
213218
or
214219
upper = "RSA" and
215220
type = KeyOpAlg::TAsymmetricCipher(KeyOpAlg::RSA())
221+
or
222+
upper = "SKIPJACK" and
223+
type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::SKIPJACK())
224+
or
225+
upper = "BLOWFISH" and
226+
type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::BLOWFISH())
216227
)
217228
}
218229

java/ql/test/experimental/library-tests/quantum/node_properties.expected

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1546,8 +1546,10 @@
15461546
| jca/SymmetricAlgorithm.java:151:29:151:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/SymmetricAlgorithm.java:151:29:151:53 | jca/SymmetricAlgorithm.java:151:29:151:53 |
15471547
| jca/SymmetricAlgorithm.java:167:42:167:54 | Parameter | Description | key | jca/SymmetricAlgorithm.java:167:42:167:54 | jca/SymmetricAlgorithm.java:167:42:167:54 |
15481548
| jca/SymmetricAlgorithm.java:167:57:167:72 | Parameter | Description | plaintext | jca/SymmetricAlgorithm.java:167:57:167:72 | jca/SymmetricAlgorithm.java:167:57:167:72 |
1549-
| jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | Name | Unknown | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 |
1549+
| jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | KeySize | 56 | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 |
1550+
| jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | Name | DES | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 |
15501551
| jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | RawName | DESede/CBC/PKCS5Padding | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 |
1552+
| jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | Structure | Block | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 |
15511553
| jca/SymmetricAlgorithm.java:168:44:168:68 | ModeOfOperation | Name | CBC | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 |
15521554
| jca/SymmetricAlgorithm.java:168:44:168:68 | ModeOfOperation | RawName | CBC | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 |
15531555
| jca/SymmetricAlgorithm.java:168:44:168:68 | PaddingAlgorithm | Name | PKCS7 | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 |

shared/quantum/codeql/quantum/experimental/Standardization.qll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ module Types {
3939
RC5() or
4040
SEED() or
4141
SM4() or
42+
SKIPJACK() or
4243
OtherSymmetricCipherType()
4344

4445
newtype TAsymmetricCipherType =
@@ -118,6 +119,8 @@ module Types {
118119
or
119120
type = SM4() and name = "SM4" and s = Block()
120121
or
122+
type = SKIPJACK() and name = "Skipjack" and s = Block()
123+
or
121124
type = OtherSymmetricCipherType() and
122125
name = "UnknownSymmetricCipher" and
123126
s = OtherCipherStructureType()

0 commit comments

Comments
 (0)