Commit Graph

378 Commits

Author SHA1 Message Date
REDMOND\brodes
23b6c78a23 Crypto: Revert CODEOWNERS change and remove redundant cast. 2025-06-02 13:07:31 -04:00
REDMOND\brodes
cf015d18f1 Crypto: Add openssl key agreement instances and consumers (KEM and KEY_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. 2025-05-30 11:29:34 -04:00
REDMOND\brodes
69e3a20e24 Crypto: Update crypto stubs location under 'crypto' and associate codeowners on any test/stubs/crypto. Minor fix to HashAlgorithmValueConsumer (remove library detector logic). 2025-05-30 09:35:33 -04:00
REDMOND\brodes
41f008d4f3 Crypto: Adding initial openssl tests, fixing a bug in hash modeling found through tests, and updating CODEOWNERS for quantum tests 2025-05-27 15:23:53 -04:00
REDMOND\brodes
007683f06a Crypto: Simplifying constant comparisons. 2025-05-22 14:06:13 -04:00
REDMOND\brodes
28f48246fc Crypto: Adding signature constant support, and fixing key exchange and signature mapping for ED and X elliptic curve variants. 2025-05-22 13:13:35 -04:00
REDMOND\brodes
ca1d4e270a Crypto: Separating out an IntLiteral class so it is clearer that some 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. 2025-05-22 12:53:11 -04:00
REDMOND\brodes
570fdeb254 Crypto: Code Cleanup (+1 squashed commits)
Squashed commits:

[417734cc3c] Crypto: Fixing typo (+1 squashed commits)

Squashed commits:

[1ac3d5c7d4] Crypto: Fixing typo caused by AI auto complete.
2025-05-22 10:52:19 -04:00
REDMOND\brodes
a5b57d3694 Merge branch 'main' into generic_constant_filtering
# 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
2025-05-22 10:37:10 -04:00
REDMOND\brodes
09170e598c Crypto: Making generic literal filter more explicit that it is for filtering all constants, not just for algorithms. 2025-05-22 10:31:58 -04:00
REDMOND\brodes
100045d4cb Crypto: optimizing out the "getPossibleNidFromLiteral" predicate, and now relying on the charpred of OpenSSLAlgorithmCandidateLiteral. 2025-05-21 18:25:29 -04:00
REDMOND\brodes
a36fd2cb31 Crypto: Advanced literal filtering for OpenSSL, used for both unknown and known algorithm literals to improve dataflow performance. 2025-05-21 18:15:44 -04:00
REDMOND\brodes
d75fc2e8ec Crypto: Further code cleanup 2025-05-21 15:25:04 -04:00
Ben Rodes
5370bb4e45 Merge branch 'main' into ben_refactoring 2025-05-21 15:07:53 -04:00
REDMOND\brodes
bbee2c9bdf Crypto: Misc. refactoring and code clean up. 2025-05-21 15:06:46 -04:00
Nicolas Will
9cc121f414 Merge pull request #19545 from bdrodes/missing_openssl_hash_algorithm_consumers
Quantum: Model missing OpenSSL EVP digest consumers
2025-05-21 19:03:06 +02:00
Nicolas Will
9637aeca5e Merge pull request #19547 from bdrodes/openssl_pkey_alg_value_consumers
Quantum: Add OpenSSL PKEY algorithm value consumers.
2025-05-21 19:00:36 +02:00
Nicolas Will
acb19627d6 Merge branch 'main' into missing_openssl_hash_algorithm_consumers 2025-05-21 18:01:28 +02:00
REDMOND\brodes
9f65cb8c4c Comment/doc cleanup 2025-05-21 11:51:25 -04:00
Nicolas Will
48e484b438 Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-21 16:26:11 +02:00
REDMOND\brodes
6ffb049b75 Crypto: Adding alg value consumers for EVP PKEY for openssl. As part of the additional modeling, updated the generic dataflow source to match JCA with how "EC" is handled as a consumed algorithm for PKEY. 2025-05-20 14:18:33 -04:00
REDMOND\brodes
d35fc64987 Crypto: Missing openssl EVP digest consumers. 2025-05-20 11:23:27 -04:00
Ben Rodes
efd9386d6e Update cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-20 10:58:19 -04:00
REDMOND\brodes
c3ed4549f4 Crypto: Changing fixed key size for the key gen operation for EC key gen to be none, and rely implicitly on the connected algorithm length. (+1 squashed commits) (+1 squashed commits)
Squashed commits:

[b7cd7baa42] Crypto: Modeled EC key gen for openssl. (+1 squashed commits)
2025-05-20 10:39:21 -04:00
REDMOND\brodes
b56472436e Crypto: Alterations to OpenSSL cipher algorithms to use new fixed keysize predicate. 2025-05-20 10:36:56 -04:00
Ben Rodes
55119cf770 Merge branch 'main' into openssl_elliptic_curve_algorithm_instances_and_consumers 2025-05-19 15:50:00 -04:00
REDMOND\brodes
4309499c36 Switching to private imports. 2025-05-19 15:44:15 -04:00
REDMOND\brodes
03a6e134ba Crypto: Removed dead comment. 2025-05-19 13:51:42 -04:00
REDMOND\brodes
e5641eff23 Crypto: Typo fix 2025-05-19 13:50:41 -04:00
REDMOND\brodes
3e54e4d6b6 Crypto: Fixing typo. 2025-05-19 13:49:29 -04:00
REDMOND\brodes
d05d38f00c Crypto: Removing unused class field. 2025-05-19 13:48:15 -04:00
REDMOND\brodes
bbbdf89e46 Crypto: OpenSSL ellipitic curve algorithm instances and consumers. 2025-05-19 13:10:11 -04:00
REDMOND\brodes
309ad461a5 Quantum/Crypto: Adding Random.qll for OpenSSL into the general imports for the OpenSSL.qll model. 2025-05-19 10:56:17 -04:00
REDMOND\brodes
74271e4a17 Quantum/Crypto: To avoid ambiguity, altered OpenSSL EVP_Update_Call and EVP_Final_Call used for ciphers to explicitly say "Cipher", e.g., EVP_Cipher_Update_Call. This is also consistent with the new analogous digest operations. 2025-05-19 10:44:39 -04:00
REDMOND\brodes
97124745ad Quantum/Crypto:Adding interemediate hashing to the openssl (e.g., modeling final and update digest separately). 2025-05-19 10:43:32 -04:00
REDMOND\brodes
34f5e4e0c8 Adding cipher update modeling (model flow through update to final) 2025-05-16 11:23:19 -04:00
Nicolas Will
cd59ce5b04 Rename shared pack to quantum from experimental 2025-05-09 14:36:12 +02:00
Nicolas Will
1135fbe950 Fix EVP_Hash_Initializer typo 2025-05-08 02:58:43 +02:00
Nicolas Will
1d8a57e7da Fix EVP Cipher class, predicate, and comment typos 2025-05-08 02:56:52 +02:00
Nicolas Will
e956d041dc Format LibraryDetector.qll 2025-05-08 02:51:53 +02:00
Nicolas Will
7339dd0077 Rename "Quantum" to "quantum" in dir structure 2025-05-08 02:39:40 +02:00
Nicolas Will
ac72abd3a6 Refactor directory structure (shared experimental) 2025-05-08 02:35:09 +02:00
Nicolas Will
c19291be88 Refactor 'cryptography' and 'Quantum' to 'quantum' 2025-05-08 01:38:53 +02:00
REDMOND\brodes
4042081539 Missing files, should have been part of last commit. 2025-05-02 16:35:27 -04:00
REDMOND\brodes
0a0be41527 Intermediate progress towards getting hashing upgraded. Still need to handle the final and update mechanics, matching the JCA. Similarly need to update cipher to follow the JCA for update/final as well. 2025-05-02 16:33:52 -04:00
REDMOND\brodes
94632931ba Clean up 2025-05-02 14:11:10 -04:00
REDMOND\brodes
09d473674b Working refactor for cipher, padding, block mode. Still haven't completed connecting padding to algorithm instances if through a set padding interface. 2025-05-02 14:10:38 -04:00
REDMOND\brodes
c08525ad81 Additional cleanup 2025-05-02 14:07:13 -04:00
REDMOND\brodes
5694f029de Misc. cleanup 2025-05-02 14:03:50 -04:00
Nicolas Will
83617e099f Merge pull request #2 from nicolaswill/knewbury01/JCA-sample
Implement first stage cryptography modelling and queries
2025-04-30 16:39:56 +02:00