Commit Graph

46 Commits

Author SHA1 Message Date
REDMOND\brodes
f4fea6d635 Crypto: Fix consistency update with "other" vs "unknown" naming convetions for openssl. 2025-10-03 12:10:48 -04:00
REDMOND\brodes
74ce7cd188 Crypto: Moving all data flow analyses to taint tracking. 2025-08-28 20:40:05 -04:00
REDMOND\brodes
938b47c2ad Crypto: Debug missing hashes associated with HMAC. EVP_PKEY_get1_RSA is now just a passthrough, it is not a known implicit operation call. Some final operations generating null outputs are now removed from possible final operartions (typically used to determine buffer lenghth and not actually performing the operation). Misc. false positive/error fixes and code clean up, and added missing models. 2025-08-26 16:07:04 -04:00
REDMOND\brodes
422352c632 Crypto: Continued refactoring of operation steps and bug fixes. 2025-08-26 11:49:26 -04:00
REDMOND\brodes
ec7e41cb30 Crypto: Fixed issues in CBOM representations (gaps in the underlying model) and simplified unit tests in terms of the graph complexity to aid visual assessments of model correctness. 2025-08-21 15:05:45 -04:00
REDMOND\brodes
8b64a72fe1 Crypto: Initial sketch for refactoring MAC and signatures to account for APIs having one function to do both. Incomplete. Work in progress. 2025-06-30 15:36:55 -04:00
REDMOND\brodes
e6b363b81b Crypto: fix Ql-for-QL alerts. 2025-06-30 11:08:30 -04:00
REDMOND\brodes
97cd083f65 Merge branch 'operation_step_refactor' into openssl_padding_refactor
# Conflicts:
#	cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll
#	cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll
2025-06-27 09:42:06 -04:00
Ben Rodes
122a004851 Update cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/MACAlgorithmInstance.qll
Co-authored-by: Nicolas Will <nicolaswill@github.com>
2025-06-27 08:28:05 -04:00
Nicolas Will
c54e68c855 Merge branch 'main' into pr/19880 2025-06-26 16:47:38 +02:00
REDMOND\brodes
6e5734adca Crypto: Fix openssl padding to propery link async padding to hashing configs. 2025-06-26 09:18:30 -04:00
Nicolas Will
ad7358ac4f Crypto: Deduplicate "GCM" mapping from OpenSSL modeling 2025-06-25 20:26:38 +02:00
Nicolas Will
8e6031df14 Crypto: Fix further acronym casing and remove unused field 2025-06-25 20:25:33 +02:00
Nicolas Will
b8097501b6 Update cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-25 20:12:51 +02:00
Nicolas Will
14472bf744 Crypto: Refactor type name mapping and fix QL-for-QL alerts 2025-06-25 20:08:14 +02:00
Nicolas Will
710e08088f Crypto: Refactor casing and documentation 2025-06-25 15:29:03 +02:00
REDMOND\brodes
bd0efbe48c Crypto: Overhaul of EVP final/init/update to now use a more general 'OperationStep' mechanic. 2025-06-24 16:03:25 -04:00
REDMOND\brodes
8ee03e48ca Crypto: Fix cpp-specific code scanning alert failure 2025-06-18 11:04:27 -04:00
REDMOND\brodes
7c18686462 Crypto: Further ql-for-ql alert alert fixes. 2025-06-16 12:14:09 -04:00
REDMOND\brodes
790a60784e Crypto: Acronym change from OpenSSL to OpenSsl, AVC to Avc and EVP to Evp. 2025-06-16 10:56:31 -04:00
REDMOND\brodes
45fa2c94da Crypto: Code review cleanup. 2025-06-16 09:22:11 -04:00
REDMOND\brodes
cf2f0f16b8 Crypto: Initial model of signatures. Still incomplete for verification and correct handling of MACs. 2025-06-13 11:52:37 -04:00
REDMOND\brodes
eb20955a54 Crypto: Further simplify test caes to only use edges/nodes/properties. Update model to account for MAC algorithms. 2025-06-12 15:36:59 -04:00
REDMOND\brodes
7d479940e5 Crypto: Nop out signature operations for now until complete. Minor model update. Remove setting RSA bits as an RSA algorithm. Fix bug in hash algorithm. Add missing PKey encryption to cipher ops. Consolidate ctx initializers. Add unit tests, and alter unit test directory structure to allow for application to other APIs. Update expected files for unit tests (not all updated yet, a work in progress). 2025-06-10 13:37:17 -04:00
REDMOND\brodes
98aae6a7bf Crypto: Add EVP key gen and signature operation (work in progress). Add initial signature tests (no expected files yet). Add new openssl .h stubs. Clean up of OperationBase and associated uses. Update test case stubs to be closer to the actual stubs. Fix unncessary instanceof check in signatures. 2025-06-05 16:43:58 -04:00
REDMOND\brodes
952bc266b1 Crypto: Added Signature algorithm instance and consumer 2025-06-04 15:42:55 -04:00
REDMOND\brodes
39583abade Crypto: Update KnownAlgoirthmConstants to make a distinction between calls that return a known algorithm and calls that operate on a known algorithm. update KnownAlgorithmConstants to correct algType for signature algorithms. Update all instances and prior uses of the old mechanic to KnownAlgorithmConstants. 2025-06-04 15:41:24 -04:00
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
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
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
REDMOND\brodes
bbee2c9bdf Crypto: Misc. refactoring and code clean up. 2025-05-21 15:06:46 -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
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
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
Nicolas Will
7339dd0077 Rename "Quantum" to "quantum" in dir structure 2025-05-08 02:39:40 +02:00