<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Savaid Khan</title>
    <description>The latest articles on DEV Community by Savaid Khan (@savaid_khan_18d9f0b0c7dae).</description>
    <link>https://dev.to/savaid_khan_18d9f0b0c7dae</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4035079%2F3a37c4eb-7a64-458f-b2ac-febb5287e3fa.png</url>
      <title>DEV Community: Savaid Khan</title>
      <link>https://dev.to/savaid_khan_18d9f0b0c7dae</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/savaid_khan_18d9f0b0c7dae"/>
    <language>en</language>
    <item>
      <title>How to Scan Your Codebase for Quantum-Vulnerable Cryptography (Free Open Source Tool)</title>
      <dc:creator>Savaid Khan</dc:creator>
      <pubDate>Sat, 18 Jul 2026 10:45:10 +0000</pubDate>
      <link>https://dev.to/savaid_khan_18d9f0b0c7dae/how-to-scan-your-codebase-for-quantum-vulnerable-cryptography-free-open-source-tool-3d04</link>
      <guid>https://dev.to/savaid_khan_18d9f0b0c7dae/how-to-scan-your-codebase-for-quantum-vulnerable-cryptography-free-open-source-tool-3d04</guid>
      <description>&lt;p&gt;If your codebase uses RSA, ECC, DSA, or ECDSA, it is already vulnerable to quantum computers. Adversaries are collecting encrypted traffic today under the &lt;strong&gt;"harvest now, decrypt later"&lt;/strong&gt; strategy. I built an open-source tool called &lt;strong&gt;Quantum Migration Toolkit&lt;/strong&gt; that scans your entire codebase for quantum-vulnerable cryptography and automatically remediates it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why You Need to Act Now
&lt;/h2&gt;

&lt;p&gt;Large-scale quantum computers will break RSA, ECC, DSA, and ECDSA via Shor's algorithm. Three major regulations are already in effect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;U.S. OMB M-23-02 / NSM-10&lt;/strong&gt; — federal agencies must inventory quantum-vulnerable systems&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NSA CNSA 2.0&lt;/strong&gt; — mandates ML-KEM and ML-DSA for National Security Systems by 2030–2035&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EU NIS2&lt;/strong&gt; — requires quantum risk assessment for critical infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NIST finalized three post-quantum cryptography standards in 2024: &lt;strong&gt;FIPS 203 (ML-KEM)&lt;/strong&gt;, &lt;strong&gt;FIPS 204 (ML-DSA)&lt;/strong&gt;, and &lt;strong&gt;FIPS 205 (SLH-DSA)&lt;/strong&gt;. Migration starts now.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Quantum Migration Toolkit Does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Scans 9+ languages using regex + Tree-sitter AST&lt;/li&gt;
&lt;li&gt;Detects RSA, ECC, DSA, DES, RC4, MD5, SHA-1, weak RNG, hardcoded secrets — 18 total patterns&lt;/li&gt;
&lt;li&gt;Remediates findings with a local AI model grounded in real PQC API definitions&lt;/li&gt;
&lt;li&gt;Vendors a working ML-KEM + ML-DSA + AES-256-GCM SDK into your project&lt;/li&gt;
&lt;li&gt;Patches your build system automatically — CMake, pip, Cargo, Maven, Gradle, Go, NPM&lt;/li&gt;
&lt;li&gt;Outputs SARIF 2.1.0 for CI/CD and CycloneDX 1.6 CBOM for cryptographic asset inventory&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++17 compiler (GCC 7+, Clang 5+, MSVC 2019+)&lt;/li&gt;
&lt;li&gt;CMake 3.18+&lt;/li&gt;
&lt;li&gt;OpenSSL 3.0+&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Build on Linux/macOS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Savaid-Khan-Official/Quantum-Migration-Toolkit.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Quantum-Migration-Toolkit
cmake &lt;span class="nt"&gt;-S&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-B&lt;/span&gt; build &lt;span class="nt"&gt;-DCMAKE_BUILD_TYPE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Release
cmake &lt;span class="nt"&gt;--build&lt;/span&gt; build &lt;span class="nt"&gt;--parallel&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;First-time build fetches and compiles liboqs in about 5–10 minutes. Subsequent builds take seconds.&lt;/p&gt;




&lt;h2&gt;
  
  
  Running Your First Scan
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./build/cli/quantum-migrate /path/to/your/code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[CRITICAL] VULN-RSA-001 — crypto/auth.cpp:42
  RSA_generate_key_ex(rsa, 2048, e, NULL)
  Migrate to: ML-KEM-768 (FIPS 203)

[CRITICAL] VULN-ECC-001 — src/tls.py:17
  EC_KEY_generate_key(eckey)
  Migrate to: ML-DSA-65 (FIPS 204)

[HIGH] VULN-MD5-001 — utils/hash.go:8
  md5.New()
  Migrate to: SHA-256
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a full scan with entropy detection and CI/CD output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./build/cli/quantum-migrate /path/to/code &lt;span class="nt"&gt;--entropy&lt;/span&gt; &lt;span class="nt"&gt;--proximity&lt;/span&gt; &lt;span class="nt"&gt;--format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sarif &lt;span class="nt"&gt;--output&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;results.sarif &lt;span class="nt"&gt;--fail-on&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;critical
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  AI-Assisted Remediation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./build/cli/quantum-migrate /path/to/code &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--remediate&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--model&lt;/span&gt; models/qwen2.5-coder-14b-instruct-q4_k_m.gguf &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--vendor-into&lt;/span&gt; /path/to/code &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--patch-build-system&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--backup&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Recommended model is &lt;strong&gt;Qwen2.5-Coder-14B-Instruct Q4_K_M&lt;/strong&gt; (~9 GB). The tool injects real PQC API signatures into every prompt — this eliminates hallucinated function names that plague generic LLM rewrites.&lt;/p&gt;

&lt;p&gt;Add &lt;code&gt;--apply&lt;/code&gt; to write fixes directly to source. Every modified file is backed up and compile-checked — if it fails to compile it rolls back automatically.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-World Performance
&lt;/h2&gt;

&lt;p&gt;Tested across five real open-source projects totaling 7,409 files:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Findings&lt;/th&gt;
&lt;th&gt;Scan Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OpenSSH-portable v9.8p1&lt;/td&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;5.3s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PyCryptodome v3.20.0&lt;/td&gt;
&lt;td&gt;272&lt;/td&gt;
&lt;td&gt;7.3s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bouncy Castle v1.78&lt;/td&gt;
&lt;td&gt;1,079&lt;/td&gt;
&lt;td&gt;51.8s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;rustls 0.23.21&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;3.2s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;libssh2 1.11.1&lt;/td&gt;
&lt;td&gt;165&lt;/td&gt;
&lt;td&gt;2.1s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Hand-labeled precision on OpenSSH: &lt;strong&gt;96.9% — 124 out of 128 findings were true positives.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Migration Targets
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Vulnerable Algorithm&lt;/th&gt;
&lt;th&gt;Replace With&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;RSA encryption / key exchange&lt;/td&gt;
&lt;td&gt;ML-KEM-768 (FIPS 203)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RSA signatures, DSA, ECDSA&lt;/td&gt;
&lt;td&gt;ML-DSA-65 (FIPS 204)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-lived signatures&lt;/td&gt;
&lt;td&gt;SLH-DSA / SPHINCS+ (FIPS 205)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DES, 3DES, RC4, ECB&lt;/td&gt;
&lt;td&gt;AES-256-GCM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MD5, SHA-1, SHA-224&lt;/td&gt;
&lt;td&gt;SHA-256 / SHA-3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weak RNG&lt;/td&gt;
&lt;td&gt;OS CSPRNG&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Try It on the Test Repo
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./build/cli/quantum-migrate test_repo/ &lt;span class="nt"&gt;--entropy&lt;/span&gt; &lt;span class="nt"&gt;--proximity&lt;/span&gt; &lt;span class="nt"&gt;--output&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;audit.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output is 36–42 findings across C++, Python, Java, Go, Rust, and JavaScript. Good way to see exactly what it looks like before scanning your own code.&lt;/p&gt;




&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;p&gt;The toolkit is open source under MIT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Savaid-Khan-Official/Quantum-Migration-Toolkit" rel="noopener noreferrer"&gt;Quantum Migration Toolkit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/savaidkhan" rel="noopener noreferrer"&gt;Savaid Khan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://savaidkhan.com" rel="noopener noreferrer"&gt;savaidkhan.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Star the repo if you find it useful and open an issue for any languages or patterns you want added. Questions welcome in the comments.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>opensource</category>
      <category>security</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
