@@ -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