Deprecated & Broken Cryptographic Primitives
Severity: Rule-dependent (HIGH–CRITICAL)
This family covers cryptography that is already broken classically, before any quantum computer enters the picture. The Go AST scanner flags imports and call sites of MD5, SHA-1, RC4, and DES (PQC-GO-AST-001/005); per-language rules flag the same primitives plus legacy modes and short-key AES (for example PQC-JAVA-001, PQC-PYTHON-009, PQC-JAVASCRIPT-009, PQC-CPP-008). PQC-KEY-001 reports PEM private-key material committed to the repository — header plus key body, so a lone header constant in library code is not flagged. PQC-ENTROPY-001 flags weak PRNG use (math/rand, Math.random) where cryptographically secure entropy is required, PQC-IAC-001 flags legacy TLS protocol and cipher configuration, PQC-STATE-002 flags LMS/XMSS stateful signatures without visible state tracking, and PQC-FIPS-001 flags references to FIPS 140-2 certificates approaching Historical status.
Remediation checklist
- Replace MD5 and SHA-1 with SHA-384 or SHA-512; replace DES, 3DES, RC4, and Blowfish with AES-256-GCM.
- Draw key material from a cryptographically secure source (crypto/rand, secrets), never math/rand or Math.random.
- Rotate any private key the scan finds committed to source control and remove it from history — .gitignore is not sufficient.
Code examples
Vulnerable — AES-128 keyed through PBKDF2-SHA1
// SHA-1 import is flagged (PQC-GO-AST-001); 128-bit key falls short of CNSA 2.0 key := pbkdf2.Key(pw, salt, 10000, 16, sha1.New) block, _ := aes.NewCipher(key) // AES-128
Remediated — AES-256-GCM keyed through PBKDF2-SHA256
// 256-bit key, SHA-256 KDF, authenticated encryption key := pbkdf2.Key(pw, salt, 600_000, 32, sha256.New) block, _ := aes.NewCipher(key) // AES-256 aead, _ := cipher.NewGCM(block)
Preview remediation proposals
Preview proposed changes free with ciphermap fix --dry-run. Narrow MD5/SHA-1-to-SHA-256 proposals cover supported Go, Python, and Node ESM call shapes. RSA, protocol, persisted-digest, and unsupported migrations are declined with a reason. Proposal preview is Free. Production source publication remains disabled until the isolated Gate 2 transaction and recovery evidence are promoted; a Tier B licence does not enable apply actions in this release.
View DevSecOps pricing