@@ -323,20 +323,21 @@ class JavaxCryptoSecretKey extends JavaxCryptoAlgoSpec {
323
323
}
324
324
}
325
325
326
- /** The Java class `javax.crypto.spec.DHGenParameterSpec`. */
327
- class DhGenParameterSpec extends RefType {
328
- DhGenParameterSpec ( ) { this .hasQualifiedName ( "javax.crypto.spec" , "DHGenParameterSpec" ) }
329
- }
330
-
331
326
class JavaxCryptoKeyGenerator extends JavaxCryptoAlgoSpec {
332
327
JavaxCryptoKeyGenerator ( ) {
328
+ exists ( Constructor c | c .getAReference ( ) = this | c .getDeclaringType ( ) instanceof KeyGenerator )
329
+ or
333
330
exists ( Method m | m .getAReference ( ) = this |
334
331
m .getDeclaringType ( ) instanceof KeyGenerator and
335
332
m .getName ( ) = "getInstance"
336
333
)
337
334
}
338
335
339
- override Expr getAlgoSpec ( ) { result = this .( MethodAccess ) .getArgument ( 0 ) }
336
+ override Expr getAlgoSpec ( ) {
337
+ exists ( Call c | c = this |
338
+ if c .getNumArgument ( ) = 3 then result = c .getArgument ( 2 ) else result = c .getArgument ( 0 )
339
+ )
340
+ }
340
341
}
341
342
342
343
class JavaxCryptoKeyAgreement extends JavaxCryptoAlgoSpec {
@@ -388,29 +389,41 @@ class JavaSecuritySignature extends JavaSecurityAlgoSpec {
388
389
override Expr getAlgoSpec ( ) { result = this .( ConstructorCall ) .getArgument ( 0 ) }
389
390
}
390
391
392
+ /** A method call to the Java class `java.security.KeyPairGenerator`. */
393
+ class JavaSecurityKeyPairGenerator extends JavaSecurityAlgoSpec {
394
+ JavaSecurityKeyPairGenerator ( ) {
395
+ exists ( Constructor c | c .getAReference ( ) = this |
396
+ c .getDeclaringType ( ) instanceof KeyPairGenerator
397
+ )
398
+ or
399
+ exists ( Method m | m .getAReference ( ) = this |
400
+ m .getDeclaringType ( ) instanceof KeyPairGenerator and
401
+ m .getName ( ) = "getInstance"
402
+ )
403
+ }
404
+
405
+ override Expr getAlgoSpec ( ) { result = this .( Call ) .getArgument ( 0 ) }
406
+ }
407
+
408
+ /** The Java interface `java.security.spec.AlgorithmParameterSpec` */
409
+ abstract class AlgorithmParameterSpec extends RefType { }
410
+
391
411
/** The Java class `java.security.spec.ECGenParameterSpec`. */
392
- class EcGenParameterSpec extends RefType {
412
+ class EcGenParameterSpec extends AlgorithmParameterSpec {
393
413
EcGenParameterSpec ( ) { this .hasQualifiedName ( "java.security.spec" , "ECGenParameterSpec" ) }
394
414
}
395
415
396
416
/** The Java class `java.security.spec.RSAKeyGenParameterSpec`. */
397
- class RsaKeyGenParameterSpec extends RefType {
417
+ class RsaKeyGenParameterSpec extends AlgorithmParameterSpec {
398
418
RsaKeyGenParameterSpec ( ) { this .hasQualifiedName ( "java.security.spec" , "RSAKeyGenParameterSpec" ) }
399
419
}
400
420
401
421
/** The Java class `java.security.spec.DSAGenParameterSpec`. */
402
- class DsaGenParameterSpec extends RefType {
422
+ class DsaGenParameterSpec extends AlgorithmParameterSpec {
403
423
DsaGenParameterSpec ( ) { this .hasQualifiedName ( "java.security.spec" , "DSAGenParameterSpec" ) }
404
424
}
405
425
406
- /** A method call to the Java class `java.security.KeyPairGenerator`. */
407
- class JavaSecurityKeyPairGenerator extends JavaxCryptoAlgoSpec {
408
- JavaSecurityKeyPairGenerator ( ) {
409
- exists ( Method m | m .getAReference ( ) = this |
410
- m .getDeclaringType ( ) instanceof KeyPairGenerator and
411
- m .getName ( ) = "getInstance"
412
- )
413
- }
414
-
415
- override Expr getAlgoSpec ( ) { result = this .( MethodAccess ) .getArgument ( 0 ) }
426
+ /** The Java class `javax.crypto.spec.DHGenParameterSpec`. */
427
+ class DhGenParameterSpec extends AlgorithmParameterSpec {
428
+ DhGenParameterSpec ( ) { this .hasQualifiedName ( "javax.crypto.spec" , "DHGenParameterSpec" ) }
416
429
}
0 commit comments