diff --git a/cpp/ql/src/experimental/campaigns/nccoe-pqc-migration/QuantumVulnerableDiscovery/WinCng/WindowsCng.qll b/cpp/ql/src/experimental/campaigns/nccoe-pqc-migration/QuantumVulnerableDiscovery/WinCng/WindowsCng.qll index 44900790b63..af82ea651e9 100644 --- a/cpp/ql/src/experimental/campaigns/nccoe-pqc-migration/QuantumVulnerableDiscovery/WinCng/WindowsCng.qll +++ b/cpp/ql/src/experimental/campaigns/nccoe-pqc-migration/QuantumVulnerableDiscovery/WinCng/WindowsCng.qll @@ -21,13 +21,14 @@ class BCryptEncryptArgumentSink extends BCryptOpenAlgorithmProviderSink { } // ----------------- SOURCES ----------------------- -class BCryptOpenAlgorithmProviderPqcVulnerableAlgorithmsSource extends BCryptOpenAlgorithmProviderSource { - BCryptOpenAlgorithmProviderPqcVulnerableAlgorithmsSource() { - this.asExpr() instanceof StringLiteral and - ( - this.asExpr().getValue() in ["DH", "DSA", "ECDSA", "ECDH"] or - this.asExpr().getValue().matches("ECDH%") or - this.asExpr().getValue().matches("RSA%") - ) - } +predicate providerString(StringLiteral lit) { + exists(string s | s = lit.getValue() | + s in ["DH", "DSA", "ECDSA", "ECDH"] or + s.matches("ECDH%") or + s.matches("RSA%") + ) +} + +class BCryptOpenAlgorithmProviderPqcVulnerableAlgorithmsSource extends BCryptOpenAlgorithmProviderSource { + BCryptOpenAlgorithmProviderPqcVulnerableAlgorithmsSource() { providerString(this.asExpr()) } }