@@ -79,11 +79,11 @@ class EVP_Signature_Update_Call extends EvpUpdate {
79
79
* We model output explicit output arguments as predicate to use it in constructors.
80
80
* The predicate must cover all EVP_Signature_Operation subclasses.
81
81
*/
82
+ pragma [ inline]
82
83
private Expr signatureOperationOutputArg ( Call call ) {
83
84
if call .getTarget ( ) .getName ( ) = "EVP_SignFinal_ex"
84
85
then result = call .getArgument ( 2 )
85
86
else result = call .getArgument ( 1 )
86
- ////*******todo get rid of this predicate */
87
87
}
88
88
89
89
/**
@@ -94,7 +94,6 @@ abstract class EvpSignatureOperation extends EvpOperation, Crypto::SignatureOper
94
94
this .( Call ) .getTarget ( ) .getName ( ) .matches ( "EVP_%" ) and
95
95
// NULL output argument means the call is to get the size of the signature and such call is not an operation
96
96
(
97
- // ******TODO review logic
98
97
not exists ( signatureOperationOutputArg ( this ) .getValue ( ) )
99
98
or
100
99
signatureOperationOutputArg ( this ) .getValue ( ) != "0"
@@ -182,16 +181,8 @@ class EVP_Signature_Final_Call extends EVPFinal, EvpSignatureOperation {
182
181
183
182
override CtxPointerSource getContext ( ) { result = this .( Call ) .getArgument ( 0 ) }
184
183
185
- //***********TODO: the algorithm arg might nto be the right type, can't use the initializer the same way if there
186
- // are two initializers for two different algorithms */
187
184
override Expr getAlgorithmArg ( ) {
188
185
this .getInitCall ( ) .( EvpPrimaryAlgorithmInitializer ) .getAlgorithmArg ( ) = result
189
- // // algorithm specified by the key and the key is provided in this operation
190
- // if this.(Call).getTarget().getName() in ["EVP_SignFinal", "EVP_SignFinal_ex"]
191
- // then result = getAlgorithmFromKey(this.getKeyConsumer().asExpr())
192
- // else
193
- // // or find algorithm in the initialization call
194
- // result = EVP_Signature_Operation.super.getAlgorithmArg()
195
186
}
196
187
197
188
override Crypto:: ConsumerInputDataFlowNode getKeyConsumer ( ) {
0 commit comments