Quantum: Add OpenSSL key agreement instances and consumers#19632
Quantum: Add OpenSSL key agreement instances and consumers#19632nicolaswill merged 9 commits intogithub:mainfrom
Conversation
…ound through tests, and updating CODEOWNERS for quantum tests
…l apache license and a readme for future stub creation. Modify existing test case to reference stubs location.
…eowners on any `test/stubs/crypto`. Minor fix to HashAlgorithmValueConsumer (remove library detector logic).
…Y_EXCH). Fix for raw algorithm names in all current instances. Update constants to include key agreement algorithms, previously missing. Note added in model for the possibility of ESDH.
| private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase | ||
| private import AlgToAVCFlow | ||
|
|
||
| predicate knownOpenSSLConstantToKeyAgreementFamilyType( |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
| ) | ||
| } | ||
|
|
||
| class KnownOpenSSLHashConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KeyAgreementAlgorithmInstance.qll
Fixed
Show fixed
Hide fixed
| this instanceof DirectAlgorithmValueConsumer and getterCall = this | ||
| } | ||
|
|
||
| override OpenSSLAlgorithmValueConsumer getAVC() { result = getterCall } |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
| KnownOpenSSLSignatureAlgorithmConstant() { resolveAlgorithmFromExpr(this, _, "SIGNATURE") } | ||
| } | ||
|
|
||
| class KnownOpenSSLKeyAgreementAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
| * https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis | ||
| */ | ||
| class EVPDigestAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { | ||
| class EVPDigestAlgorithmValueConsumer extends HashAlgorithmValueConsumer { |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
| private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase | ||
| private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances | ||
|
|
||
| abstract class KEMAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
|
|
||
| abstract class KEMAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } | ||
|
|
||
| class EVPKEMAlgorithmValueConsumer extends KEMAlgorithmValueConsumer { |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
|
|
||
| abstract class KeyExchangeAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } | ||
|
|
||
| class EVPKeyExchangeAlgorithmValueConsumer extends KeyExchangeAlgorithmValueConsumer { |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
|
@nicolaswill , this branch is based on the initial openssl test branch (#19564), so when that's merged the number of changes will decrease. |
nicolaswill
left a comment
There was a problem hiding this comment.
The stubs (and CODEOWNERS changes) should be removed, since main already has them in another directory. Other than that, there's just the QL for QL redundant cast alert.
nicolaswill
left a comment
There was a problem hiding this comment.
LGTM assuming CI runs pass.
No description provided.