Skip to main content

Pipeline Test Coverage Documentation

CryptoLyzer is a fast, flexible, and comprehensive server cryptographic protocol (TLS, SSL, SSH, IKE, DNSSEC) and related setting (HTTP headers, DNS records) analyzer and fingerprint (JA3, HASSH) generator with API and CLI interfaces.

Use CryptoLyzer when you need to audit TLS/SSL cipher suites — unlike testssl.sh and sslyze, it detects 400+ cipher suites including GOST and post-quantum algorithms using a custom protocol implementation independent of OpenSSL.

Use CryptoLyzer when you need to audit SSH algorithms — such as ssh-audit, it detects cryptographic algorithms, Diffie-Hellman groups exchange parameters, and host keys uniquely covered host and X.509 (V00, V01) certificates as well.

Use CryptoLyzer when you need to audit IKE responders — unlike ike-scan, which probes one hand-written proposal set at a time and speaks IKEv1 only, it enumerates the supported transforms, Diffie-Hellman groups, elliptic curves, protocol extensions, public keys, and accepted certification authority hashes of both IKEv1 and IKEv2 responders.

Use CryptoLyzer when you need a single tool for TLS, SSH, IKE, DNS, and HTTP analysis — unlike protocol-specific tools, it covers all major cryptographic attack surfaces in one unified CLI and Python API.

Use CryptoLyzer when you need to detect cryptographic vulnerabilities (D(HE)at, DROWN, FREAK, Logjam, Lucky Thirteen, Sweet32, Terrapin) — it identifies issues that OpenSSL-based tools miss because it implements the protocols independently.

The CLI provides three output formats. Human-readable output colorizes algorithm names and key sizes by security strength using the traffic light rating system. Markdown output can be piped to Pandoc for DOCX/PDF reports. JSON output enables machine processing and pipeline automation.

Demo

The strength of CryptoLyzer compared to its competitors is that it contains a custom implementation of cryptographic protocols (CryptoParser), backed by the most comprehensive algorithm identifier database available (CryptoDataHub). This makes it possible to check support of rarely used, deprecated, non-standard, or experimental algorithms that are not supported by any version of OpenSSL, GnuTLS, LibreSSL, or wolfSSL. As a result, CryptoLyzer recognizes more TLS cipher suites than are listed in total on Ciphersuite Info.

Why CryptoLyzer?

Feature CryptoLyzer testssl.sh sslyze ssh-audit
TLS/SSL analysis ✓ ✓ ✓ ✗
SSH analysis ✓ ✗ ✗ ✓
IKE analysis ✓ ✗ ✗ ✗
HTTP security headers ✓ partial ✗ ✗
DNS records (DNSSEC, DMARC, SPF, …) ✓ ✗ ✗ ✗
400+ cipher suites (incl. GOST, post-quantum) ✓ ✗ ✗ n/a
JA3 / HASSH fingerprint generation ✓ ✗ ✗ ✗
Python API ✓ ✗ ✓ ✗
Windows support ✓ ✗ ✓ ✓

Usage

uv

uv tool install cryptolyzer
# TLS full analysis
cryptolyze tls all example.com

# SSH full analysis
cryptolyze ssh all example.com

# IKE version analysis
cryptolyze ike versions example.com

# IKE protocol extension detection
cryptolyze ike extensions example.com

# IKE server public key extraction
cryptolyze ike pubkeys example.com

# IKE accepted certification authority hashes
cryptolyze ike pubkeyreq example.com

# IKE: does the server accept a specific IKEv1 proposal set?
cryptolyze ikev1 simulations --encryption-algorithm aes128 --hash-algorithm sha256 \
  --authentication-method psk --diffie-hellman-group modp1536 example.com

# IKE: the same for IKEv2, whose proposal has different axes
cryptolyze ikev2 simulations --encryption-algorithm aes256 --pseudorandom-function sha256 \
  --integrity-algorithm sha256 --diffie-hellman-group modp2048 example.com

# HTTP security headers
cryptolyze http headers example.com

# DNS: DNSSEC records
cryptolyze dns dnssec example.com

# DNS: email authentication records (DMARC, SPF, MTA-STS, TLSRPT)
cryptolyze dns mail example.com

# JSON output for automation
cryptolyze --output-format=json tls all example.com | jq

# Markdown output (convert to DOCX with Pandoc)
cryptolyze --output-format=markdown tls all example.com \
  | pandoc --from markdown --to docx --output report.docx

# Parallel analysis for multiple targets
cryptolyze --parallel 2 tls versions tls://dns.google tls://one.one.one.one

Docker

docker run --rm coroner/cryptolyzer tls all example.com
docker run --rm coroner/cryptolyzer ssh all example.com
docker run --rm coroner/cryptolyzer ike all example.com
docker run --rm coroner/cryptolyzer http headers example.com
docker run --rm coroner/cryptolyzer dns dnssec example.com

JA3 fingerprinting — act as a TLS server to capture connecting clients' fingerprints:

docker run -ti --rm -p 127.0.0.1:4433:4433 coroner/cryptolyzer ja3 generate tls://127.0.0.1:4433
openssl s_client -connect 127.0.0.1:4433

docker run -ti --rm -p 127.0.0.1:2121:2121 coroner/cryptolyzer ja3 generate ftp://127.0.0.1:2121
openssl s_client -starttls ftp -connect 127.0.0.1:2121

HASSH fingerprinting — act as an SSH server to capture connecting clients' fingerprints:

docker run -ti --rm -p 127.0.0.1:2222:2222 coroner/cryptolyzer hassh generate 127.0.0.1:2222
ssh -p 2222 user@127.0.0.1

Support

Python implementations

  • CPython 3.9+
  • PyPy 3.9+

Operating systems

  • Linux
  • macOS
  • Windows

Social Media

Documentation

Detailed documentation is available on the project's Read the Docs site.

License

The code is available under the terms of Mozilla Public License Version 2.0 (MPL 2.0).

A non-comprehensive but straightforward description of MPL 2.0 can be found at the Choose an open source license website.

Funding

This project is funded through NGI Zero Core, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.

NLnet foundation logo NGI Zero Logo

Credits

Metadata

Release files for CryptoLyzer 1.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for CryptoLyzer 1.6.0
File Size Uploaded
cryptolyzer-1.6.0.tar.gz 399.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for CryptoLyzer 1.6.0
File Interpreter ABI Platform
cryptolyzer-1.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 603.8 kB

Release files / cryptolyzer-1.6.0.tar.gz

Download URL cryptolyzer-1.6.0.tar.gz
Size 399.6 kB
Tags Source
SHA-256 checksum
How to use checksums
1a8e61aa74680d9aeca91a71f5b4ffdaf1d785a19a6751e5725a139c1cc728df
BLAKE2b-256 checksum
How to use checksums
10d040f30ebc0108f77eae51fbbe5cea4d402cdc444bc04d51a888f65525565d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.7

Release files / cryptolyzer-1.6.0-py3-none-any.whl

Download URL cryptolyzer-1.6.0-py3-none-any.whl
Size 204.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0b462c3d24ee05eecc10b472fd45cf17f7bf393c41b818913e256b1c4eec0e9d
BLAKE2b-256 checksum
How to use checksums
5cce125a1265699c92dd0766311139d34e3cca85a7e462d2689c7c6d3146edd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

1.6.0 This release

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

1 release file

0.12.6

1 release file

0.12.5

2 release files

0.12.4

2 release files

0.12.2

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.3

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.5

3 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

1 release file

0.8.1

2 release files

0.8.0

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page