Coverage

One inventory across all three surfaces 12.3.3 cares about.

PCI DSS 12.3.3 asks for a documented, annually-reviewed inventory of the cipher suites and protocols in use across your environment. That inventory spans both what you wrote and what you run. CipherM looks at source code, configuration files, and live TLS endpoints together — so a finding in one place can be traced to its cause in another.

The three surfaces

Where cryptography actually lives

Source code

Hard-coded algorithms, key sizes, deprecated library calls, custom crypto and the dependencies that ship cipher implementations into your build.

Configuration files

java.security, openssl.cnf, web-server and load-balancer config, cipher-suite allow-lists and protocol floors — the settings that decide what is actually permitted at runtime.

Live TLS endpoints

What your servers and services negotiate in production: the suites and protocol versions they actually accept, plus certificate signature algorithms and key lengths.

Why partial coverage fails

Single-surface tools each miss a different half of the inventory.

A network scanner sees what your endpoints negotiate but never opens your code or configs. A source-only OSS tool reads your repo but never connects to a running service. Either way, the 12.3.3 inventory has a hole in it — and that hole is where the QSA finding lands.

SurfaceCipherMsource + config + live TLSNetwork-only scannerslive TLS onlySource-only OSS toolsrepo grep only
Source code (libraries, hard-coded algorithms, key sizes) Covered— Missed Covered
Configuration files (java.security, openssl.cnf, nginx/Apache) Covered— Missed Partial
Live TLS endpoints (negotiated suites, protocol versions) Covered Covered— Missed
Certificates (signature algorithm, key length, expiry) Covered Covered— Missed
Mapping a runtime finding back to the file that caused it Covered— Missed Partial

Categories above describe the general classes of tooling, not any specific named product. Your own environment may differ — a Rapid Assessment confirms exactly what each tool in your stack does and does not see.

Scope

Why 12.3.3 scope spans both runtime and code

01

Runtime tells you what is exposed

An endpoint accepting a weak protocol is an immediate, in-scope finding. But the negotiated suite alone doesn't tell you where to fix it.

02

Code & config tell you the cause

The deprecated default lives in a config file or a dependency. Without reading those, you can patch the symptom and leave the root cause to resurface on the next deploy.

03

The inventory has to reconcile

12.3.3 expects one inventory you can defend. When runtime, config and code are scanned together, every entry traces from what a service negotiates back to the line that set it.

See all three surfaces in one inventory.

A Rapid Assessment reconciles all three surfaces — source code, configuration, and live TLS — into the single cryptographic inventory 12.3.3 asks you to keep. Want a taste first? Run the free scan to check the live-TLS half of that picture in seconds.