Skip to content

Commit 9fa30a3

Browse files
committed
Crypto: Updating algorithm string literals and key generation algorithm literal sources to include signatures.
1 parent 9c5765a commit 9fa30a3

File tree

1 file changed

+8
-3
lines changed
  • java/ql/lib/experimental/quantum

1 file changed

+8
-3
lines changed

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ module JCAModel {
115115

116116
bindingset[name]
117117
predicate key_agreement_names(string name) {
118-
name.toUpperCase().matches(["DH", "EDH", "ECDH", "X25519", "X448"].toUpperCase())
118+
name.toUpperCase()
119+
.matches(["DH", "EDH", "ECDH", "X25519", "X448", "ML-KEM%", "XDH"].toUpperCase())
119120
}
120121

121122
bindingset[name]
@@ -221,13 +222,16 @@ module JCAModel {
221222
bindingset[name]
222223
predicate key_agreement_name_to_type_known(Crypto::TKeyAgreementType type, string name) {
223224
type = Crypto::DH() and
224-
name.toUpperCase() = "DH"
225+
name.toUpperCase() in ["DH", "XDH"]
225226
or
226227
type = Crypto::EDH() and
227228
name.toUpperCase() = "EDH"
228229
or
229230
type = Crypto::ECDH() and
230231
name.toUpperCase() in ["ECDH", "X25519", "X448"]
232+
or
233+
type = Crypto::OtherKeyAgreementType() and
234+
name.toUpperCase().matches("ML-KEM%")
231235
}
232236

233237
/**
@@ -1042,7 +1046,8 @@ module JCAModel {
10421046
override Crypto::AlgorithmInstance getAKnownAlgorithmSource() {
10431047
result.(CipherStringLiteralAlgorithmInstance).getConsumer() = this or
10441048
result.(KeyAgreementStringLiteralAlgorithmInstance).getConsumer() = this or
1045-
result.(EllipticCurveStringLiteralInstance).getConsumer() = this
1049+
result.(EllipticCurveStringLiteralInstance).getConsumer() = this or
1050+
result.(SignatureStringLiteralAlgorithmInstance).getConsumer() = this
10461051
}
10471052

10481053
KeyGeneratorGetInstanceCall getInstantiationCall() { result = instantiationCall }

0 commit comments

Comments
 (0)