-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Quantum: Add initial qltests for OpenSSL modeling #19564
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
… and known algorithm literals to improve dataflow performance.
… now relying on the charpred of OpenSSLAlgorithmCandidateLiteral.
…ltering all constants, not just for algorithms.
# Conflicts: # cpp/ql/lib/experimental/quantum/Language.qll # cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll # cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll
… constraints for generic input sources are heuristics to filter sources, and other constraints narrow the literals to a general type (ints). Also adding fixes in KnownAlgorithmConstants to classify some algorithms as key exchange and signature correctly, and added support for a signature constant wrapper.
…d signature mapping for ED and X elliptic curve variants.
…he current expected file in this commit is empty, i.e., tests will fail.
} | ||
} | ||
|
||
class KnownOpenSSLSignatureAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
//Heuristics for distinguishing int literals from other literals | ||
exists(this.getValue().toInt()) and | ||
not this instanceof CharLiteral and | ||
not this instanceof StringLiteral |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
* Note: this predicate should only consider restrictions with respect to integers only. | ||
* General restrictions are in the OpenSSLGenericSourceCandidateLiteral class. | ||
*/ | ||
private predicate isOpenSSLIntLiteralGenericSourceCandidate(IntLiteral l) { |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
* Literals are filtered, for example, if they are used in a way no indicative of an algorithm use | ||
* such as in an array index, bitwise operation, or logical operation. | ||
* Note a case like this: | ||
* if(algVal == "AES") |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
…ted in this commit (tests pass)
…s are tied to the operation to address a bug in the design, propagated the analgous change to ciphers.
Just a quick drive-by comment: the tests should preferably go into the |
@jketema Would |
@nicolaswill How about changing the pattern in the code owners file to |
No description provided.