Skip to content

Quantum: OpenSSL signatures #19628

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

Open
wants to merge 21 commits into
base: main
Choose a base branch
from

Conversation

GrosQuildu
Copy link

  • OpenSSL signatures (EVP): algorithm, algorithmConsumers, operations, tests
  • OpenSSL keygen (EVP)

Now in progress: basic data flows for tracking of algorithms, contexts, and keys.

fegge and others added 14 commits May 29, 2025 13:27
…ound through tests, and updating CODEOWNERS for quantum tests
add initial work for openssl signatures

add basic C test files for ciphers and signatures

more signature classes, comments for evp base classes

more signature tests

fix super calls for input consumers

fix getOutputArtifact for tests

formatting

delete redundant test files

move algorithm methods to OpenSSLOperation

refactor ECKeyGenOperation for new EVP classes

formatting

fix getOutputArtifact

fix cipher and digest operation test results

mv openssl signature to another PR
Co-authored-by: Ben Rodes <[email protected]>
@github-actions github-actions bot added the C++ label May 29, 2025
@GrosQuildu GrosQuildu changed the title Openssl signatures Quantum: OpenSSL signatures May 29, 2025
@GrosQuildu GrosQuildu marked this pull request as ready for review May 30, 2025 15:40
@Copilot Copilot AI review requested due to automatic review settings May 30, 2025 15:40
@GrosQuildu GrosQuildu requested review from a team as code owners May 30, 2025 15:40
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces support for OpenSSL signatures and key generation within the Quantum library while updating the associated data flows. Key changes include test updates to reflect new nonce and key source expectations, new and updated QL classes for modeling signature operations (EVPSignatureOperation.qll), and modifications to existing base classes and data flow modules (e.g. OpenSSLOperationBase.qll, CtxFlow.qll) to support these changes.

Reviewed Changes

Copilot reviewed 48 out of 48 changed files in this pull request and generated no comments.

Show a summary per file
File Description
cpp/ql/test/experimental/library-tests/quantum/openssl/cipher_nonce_sources.expected Updated expected test output for nonce sources.
cpp/ql/test/experimental/library-tests/quantum/openssl/cipher_key_sources.ql Added query to support new cipher key sources tracking.
cpp/ql/test/experimental/library-tests/quantum/openssl/cipher_key_sources.expected Updated expected test output for key sources.
cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperations.qll Added import for EVPSignatureOperation for signature support.
cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperationBase.qll Updated base operations including algorithm value consumer flow handling.
cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPSignatureOperation.qll New module modeling EVP signature operations, including initialization, update, and final call classes.
cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPKeyGenOperation.qll New module for EVP key generation operations supporting both keygen and parameter generation.
cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll Updates to hash operations with changes to input/output and data flow tracking.
cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashInitializer.qll Changed inheritance to extend EVPInitialize.
cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll Updated cipher operation modeling with revised data flow implementations.
cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll Modified to use EVPInitialize and updated key operation subtype handling.
cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll Simplified EC key generation operation implementation.
cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll Revised CtxPointerExpr and updated context flow predicates.
cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/* New files for modeling signature and PKey algorithm consumers integrated into the value consumer framework.
cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/* New and modified files to support signature algorithm instances and update known algorithm constants.
CODEOWNERS Adjusted pattern matching for experimental quantum code ownership.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants