@@ -3,18 +3,14 @@ private import experimental.quantum.Language
33private import semmle.code.cpp.dataflow.new.DataFlow
44private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase
55private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances
6- private import experimental.quantum.OpenSSL.LibraryDetector
76
87abstract class HashAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { }
98
109/**
1110 * EVP_Q_Digest directly consumes algorithm constant values
1211 */
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" }
1814
1915 override Crypto:: ConsumerInputDataFlowNode getInputNode ( ) {
2016 result .asExpr ( ) = this .( Call ) .getArgument ( 1 )
@@ -35,13 +31,12 @@ class EVP_Q_Digest_Algorithm_Consumer extends OpenSSLAlgorithmValueConsumer {
3531 * The EVP digest algorithm getters
3632 * https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis
3733 */
38- class EVPDigestAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer {
34+ class EVPDigestAlgorithmValueConsumer extends HashAlgorithmValueConsumer {
3935 DataFlow:: Node valueArgNode ;
4036 DataFlow:: Node resultNode ;
4137
4238 EVPDigestAlgorithmValueConsumer ( ) {
4339 resultNode .asExpr ( ) = this and
44- isPossibleOpenSSLFunction ( this .( Call ) .getTarget ( ) ) and
4540 (
4641 this .( Call ) .getTarget ( ) .getName ( ) in [
4742 "EVP_get_digestbyname" , "EVP_get_digestbynid" , "EVP_get_digestbyobj"
0 commit comments