@@ -3,18 +3,14 @@ private import experimental.quantum.Language
3
3
private import semmle.code.cpp.dataflow.new.DataFlow
4
4
private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase
5
5
private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances
6
- private import experimental.quantum.OpenSSL.LibraryDetector
7
6
8
7
abstract class HashAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { }
9
8
10
9
/**
11
10
* EVP_Q_Digest directly consumes algorithm constant values
12
11
*/
13
- class EVP_Q_Digest_Algorithm_Consumer extends OpenSSLAlgorithmValueConsumer {
14
- EVP_Q_Digest_Algorithm_Consumer ( ) {
15
- isPossibleOpenSSLFunction ( this .( Call ) .getTarget ( ) ) and
16
- this .( Call ) .getTarget ( ) .getName ( ) = "EVP_Q_digest"
17
- }
12
+ class EVP_Q_Digest_Algorithm_Consumer extends HashAlgorithmValueConsumer {
13
+ EVP_Q_Digest_Algorithm_Consumer ( ) { this .( Call ) .getTarget ( ) .getName ( ) = "EVP_Q_digest" }
18
14
19
15
override Crypto:: ConsumerInputDataFlowNode getInputNode ( ) {
20
16
result .asExpr ( ) = this .( Call ) .getArgument ( 1 )
@@ -35,13 +31,12 @@ class EVP_Q_Digest_Algorithm_Consumer extends OpenSSLAlgorithmValueConsumer {
35
31
* The EVP digest algorithm getters
36
32
* https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis
37
33
*/
38
- class EVPDigestAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer {
34
+ class EVPDigestAlgorithmValueConsumer extends HashAlgorithmValueConsumer {
39
35
DataFlow:: Node valueArgNode ;
40
36
DataFlow:: Node resultNode ;
41
37
42
38
EVPDigestAlgorithmValueConsumer ( ) {
43
39
resultNode .asExpr ( ) = this and
44
- isPossibleOpenSSLFunction ( this .( Call ) .getTarget ( ) ) and
45
40
(
46
41
this .( Call ) .getTarget ( ) .getName ( ) in [
47
42
"EVP_get_digestbyname" , "EVP_get_digestbynid" , "EVP_get_digestbyobj"
0 commit comments