Help us shape the future of Go! Take the 2026 Go Developer Survey

cipherhorizon

module
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2026 License: Apache-2.0

README

CipherHorizon

CI Go Reference CycloneDX

Post-quantum readiness for the protocols your organisation runs on: TLS, SSH and, next, VPN. A deep scan of each, a readiness level from L0 to L4, and one CycloneDX CBOM, self-hosted. By Offset Security.

Recorded traffic is protected today only if the key exchange was post-quantum: NIST IR 8547 deprecates the quantum-vulnerable algorithms after 2030 and disallows them after 2035, and anything harvested before then can be decrypted later. CipherHorizon tells you which of your TLS endpoints and SSH servers are exposed, which machines carry quantum-vulnerable cryptography, and what to fix first. It runs on your network and sends nothing anywhere.

Quick start

docker compose up -d                                          # or: podman compose up -d
sudo apt install ./cipherhorizon_<version>_amd64.deb          # Debian, Ubuntu (dnf install … .rpm on RHEL, Fedora)
cipherhorizon.exe service install                             # Windows, as administrator: a service that starts at boot
cipherhorizon serve                                           # any OS, from the release archive, in this terminal

Downloads (Linux, macOS, Windows; amd64 and arm64) are on the Releases page. Each OS, where the data lives, backup, upgrade and removal: docs/engineering/INSTALL.md.

Open http://127.0.0.1:8080, type an address, press Enter. Sign-in is off until you want it: turn it on in Settings to give a team accounts and roles, or start with --sign-in on.

Another port: cipherhorizon serve --port 9000, or set CIPHERHORIZON_PORT=9000 (containers and services; the health check follows it). If the port is taken, serve says so and suggests the next one. Every way of running it: Choosing the port.

From the command line, no server needed:

cipherhorizon tls scan example.com                     # the verdict: readiness, TLS hygiene score, what to fix
cipherhorizon tls scan smtp://mail.example.com         # STARTTLS: SMTP, IMAP, POP3, FTP, XMPP, LDAP, PostgreSQL
cipherhorizon tls scan --fail-on 'level<L3' api.example.com   # exit 3 when it fails: a CI gate
cipherhorizon ssh scan bastion.example.com              # readiness, the SSH baseline, the sshd_config lines to meet it
cipherhorizon ssh scan --fail-on baseline git.example.com      # exit 3 when the server does not meet the baseline

Scan only systems you own or are authorised to test.

Three things it does well

Post-quantum readiness, protocol by protocol. One question across everything: is recorded traffic exposed to harvest-now-decrypt-later? Every TLS endpoint and SSH server gets a level from L0 (the protocol in use cannot carry a post-quantum key exchange) to L4 (post-quantum key exchange and authentication), each protocol by its own stated rules. Systems are ranked for migration by exposure and by how long their data must stay secret.

Scanners that show their work. The TLS scanner is its own wire implementation: every protocol from SSLv2 to TLS 1.3, every cipher suite and key-exchange group (including X25519MLKEM768), the signature schemes (ML-DSA included), the certificate chain against the bundled root stores, OCSP stapling, CT and HSTS. Its 55 checks each say what they found or that they passed, why it matters, what to do and their sources; the TLS hygiene score (0 to 100) shows its arithmetic. The SSH auditor reads what a server offers, negotiates as OpenSSH 10.6 would (ML-KEM hybrid included), verifies every host key, and never logs in. It judges the server against a cited baseline and writes the sshd_config lines that would make it meet it. Both are checked against real servers: OpenSSL for trust, OpenSSH 9.2 and 10.0 for SSH.

An inventory you can hand over. Two short, readable scripts (PowerShell and shell) inventory a machine without installing anything; CBOMs from other tools can be imported. TLS endpoints, SSH servers and machines merge into one CycloneDX 1.7 CBOM, with PDF reports for each endpoint and for the whole inventory, and the OMB M-23-02 items per system.

A TLS endpoint: verdict first, then every check STARTTLS services, the same depth
An SMTP endpoint scanned through STARTTLS
SSH servers: readiness and the baseline, never a score The sshd_config lines that meet the baseline

What is in it

TLS endpoints Every protocol from SSLv2 to TLS 1.3, every cipher suite and key-exchange group (hybrids such as X25519MLKEM768 included), the TLS 1.3 signature schemes (ML-DSA included), the certificate chain against the Mozilla and Chrome root stores or your own CA, OCSP stapling, Certificate Transparency and HSTS. STARTTLS for SMTP, IMAP, POP3, FTP, XMPP, LDAP and PostgreSQL. 55 cited checks and the TLS hygiene score.
SSH servers Identification and algorithm lists, negotiation as OpenSSH 10.6 would (the ML-KEM hybrid included), every host key fetched and verified (Ed25519, ECDSA, RSA, ML-DSA and the composite ssh-mldsa44-ed25519), 18 cited checks, and the CipherHorizon SSH baseline 2026 with the sshd_config lines to meet it. It never logs in.
Post-quantum readiness L0 to L4 for every TLS endpoint and SSH server, each protocol by its own stated rules, with harvest-now-decrypt-later exposure.
Machines Two readable inventory scripts (PowerShell, shell) list a machine's cryptographic software and certificates; nothing is installed and no key material is read.
Inventory TLS endpoints, SSH servers, machines and imported CBOMs merged into one CycloneDX 1.7 (or 1.6) CBOM: every algorithm with its OID where one exists (the exact certificate signature algorithm, ECDH on each named curve, legacy ciphers such as 3DES and RC4), certificates with their serial and SHA-256 fingerprint.
Charts you can act on Every chart opens what it counts: a readiness level opens the endpoints at that level, a ring segment the quantum-vulnerable algorithms, an expiry bar the certificates expiring in that window, a point on the history the scan it stands for. The filter stays in the address, so a filtered list can be bookmarked and Back returns to the chart.
Findings and systems Findings across everything, grouped by problem, with triage; systems ranked for migration by exposure and how long their data must stay secret; OMB M-23-02 export per system.
Reports PDF reports per TLS endpoint, per SSH server and for the whole inventory; CycloneDX, CSV and JSON downloads.
Over time Schedules, history, and what changed between two scans.
For teams Sign-in when you want it: administrator, analyst and viewer roles, an exportable activity log.
For pipelines tls scan and ssh scan from the command line with --fail-on gates (exit 3), JSON and CBOM output, and the REST API (/api/v1/openapi.json).

How it compares

CipherHorizon testssl.sh, SSLyze SSL Labs ssh-audit New PQC CLIs
Form Self-hosted web app and CLI CLI Public web service CLI CLI
Protocols TLS (with STARTTLS) and SSH TLS Public HTTPS SSH Varies
Internal endpoints Yes Yes No Yes Yes
History, schedules, accounts and roles Yes No No No No
A post-quantum readiness level per endpoint L0 to L4, with HNDL exposure Lists groups No Flags classical key exchange Varies
SSH judged against a policy A cited baseline, and the sshd_config lines to meet it No No Built-in and custom policies Rarely
SSH client audit No No No Yes No
STARTTLS 7 protocols Yes No No Rarely
Machine inventory and one CBOM Yes No No No Some
Active probes (Heartbleed, ROBOT; DHEat for SSH) No, by design: it sends no exploit or stress traffic Yes Yes DHEat No
Rating TLS: its own hygiene score, arithmetic shown. SSH: meets the baseline or not Letter grade Letter grade Pass, warn or fail per algorithm Own scores

Use testssl.sh when you need active vulnerability probes on one host, and ssh-audit to audit SSH clients or stress a server's Diffie-Hellman. Use CipherHorizon when you need to know where your estate stands on post-quantum across protocols, keep track of it, and show the evidence.

Standards

NIST IR 8547 (transition timeline) · FIPS 203 ML-KEM · FIPS 204 ML-DSA · FIPS 205 SLH-DSA · RFC 8446 and RFC 9325 (TLS) · RFC 4253, RFC 9142 and RFC 10042 (SSH) · CycloneDX 1.6 and 1.7 (CBOM) · OMB M-23-02 (export structure). The readiness level, the TLS hygiene score and the SSH baseline are this project's own; how each is worked out is in docs/methodology.md.

Security and trust

  • Self-hosted and offline. One static binary with the interface inside; no telemetry, no external requests but the scans you start. A scan contacts only its target.
  • It passes its own scan. Served over HTTPS, it speaks TLS 1.2 (forward-secret AEAD only) and TLS 1.3 with the hybrid post-quantum key exchange, sends HSTS, and the test suite scans it with its own scanner.
  • Accounts when you want them. Sign-in is off for one person on their own machine and one click away for a team: administrator, analyst and viewer roles, PBKDF2 password hashes, sessions that end, lock-outs, and every sign-in and change in an activity log an administrator can export. A server on the network will not start open unless told to (--open-network).
  • Limits you set. --scan-allow restricts what can be scanned; loopback, link-local and cloud-metadata addresses are refused by default.
  • Verifiable releases. Signed checksums (Sigstore), an SBOM per archive, build provenance, and the inventory scripts' hashes from cipherhorizon scripts list.

Report vulnerabilities privately: SECURITY.md.

Documentation

docs/deploy.md Docker, Caddy with automatic HTTPS, systemd, Windows, backups
docs/CI.md tls scan and ssh scan --fail-on, and a GitHub Actions example
docs/methodology.md Every check, the readiness levels, the TLS hygiene score, the SSH baseline
docs/tls-scanning.md How the TLS scanner works and what it sends
docs/ssh-scanning.md How the SSH auditor works, what it sends, and the SSH baseline
docs/estate-guide.md Systems, machines, migration order
docs/importing.md, docs/exporting.md CBOM in and out, OMB M-23-02
docs/architecture.md How it is built
/api/v1/openapi.json on a running server The API

Try it without touching anyone else's systems

go run ./cmd/demo-targets                    # servers of known posture on 127.0.0.1:9440 and up
cipherhorizon serve --allow-loopback         # loopback scans are refused unless you say so

demo-targets prints what each server is and what to expect: a hybrid post-quantum server (L3), classical TLS 1.3 (L1), TLS 1.2 only (L0), a deliberately terrible SSLv3 server, a slow one, a private CA chain, one STARTTLS service per protocol, and SSH servers from an SSH-1 banner (L0) to an ML-DSA host key (L4), one of them hardened to meet the baseline.

Building and testing

Go 1.27 or newer; no C compiler, no Node, no database server.

go build -o cipherhorizon ./cmd/cipherhorizon
go test ./...                       # unit and integration tests, including the UI and design rules
golangci-lint run ./...
bash testing/deploy/smoke.sh        # the container, as docker-compose.yml runs it
node testing/e2e/journey.mjs        # the browser journey, see testing/README.md

The interface is plain HTML, CSS and JavaScript modules embedded with go:embed; storage is SQLite through a pure-Go driver; the TLS scanner and the SSH auditor are their own wire implementations (internal/tlsprobe, internal/sshprobe). The design rules are in DESIGN.md.

Contributing

Bug reports, corrections to a finding or a citation, and pull requests are welcome: see CONTRIBUTING.md for the setup, conventions and the evidence rule every finding follows. Everyone participating follows the Code of Conduct.

Status: pre-release (0.x), heading for 1.0 (release checklist).

License and credits

Apache 2.0. Made by Offset Security, whose post-quantum readiness practice helps teams plan the move. Fonts: Geist and Geist Mono (Vercel) and Newsreader, all under the SIL Open Font License.

Directories

Path Synopsis
cmd
cipherhorizon command
Command cipherhorizon is a cryptographic posture tool: it inventories the cryptography installed on a host as a CycloneDX CBOM, actively scans TLS/SSL endpoints, and serves a web UI over both.
Command cipherhorizon is a cryptographic posture tool: it inventories the cryptography installed on a host as a CycloneDX CBOM, actively scans TLS/SSL endpoints, and serves a web UI over both.
cipherhorizon-collector command
Command cipherhorizon-collector inventories the cryptographic software on the machine it runs on and writes a CycloneDX CBOM.
Command cipherhorizon-collector inventories the cryptographic software on the machine it runs on and writes a CycloneDX CBOM.
demo-targets command
Command demo-targets runs a handful of deliberately different TLS servers on 127.0.0.1 so the product can be tried, demonstrated and QA'd without scanning anyone else's systems.
Command demo-targets runs a handful of deliberately different TLS servers on 127.0.0.1 so the product can be tried, demonstrated and QA'd without scanning anyone else's systems.
internal
algo
Package algo is the catalogue of cryptographic algorithms the program is allowed to put in a CBOM: a total lookup table from a canonical algorithm ID to its CycloneDX representation.
Package algo is the catalogue of cryptographic algorithms the program is allowed to put in a CBOM: a total lookup table from a canonical algorithm ID to its CycloneDX representation.
app
Package app implements the command-line interface.
Package app implements the command-line interface.
auth
Package auth holds the decisions behind signing in (ADR-0018): how a password is hashed and checked, what a password must be, and how session tokens and setup codes are made.
Package auth holds the decisions behind signing in (ADR-0018): how a password is hashed and checked, what a password must be, and how session tokens and setup codes are made.
cbom
Package cbom assembles collector findings into a CycloneDX 1.6 CBOM.
Package cbom assembles collector findings into a CycloneDX 1.6 CBOM.
cdxschema
Package cdxschema validates CycloneDX JSON documents against the specification's own schemas, embedded in the binary so validation needs no network and no files.
Package cdxschema validates CycloneDX JSON documents against the specification's own schemas, embedded in the binary so validation needs no network and no files.
certinfo
Package certinfo describes an X.509 certificate's public metadata: identity, validity, key algorithm and size, signature algorithm, names and flags.
Package certinfo describes an X.509 certificate's public metadata: identity, validity, key algorithm and size, signature algorithm, names and flags.
collector
Package collector defines CryptoAsset, the finished CycloneDX component (plus its edges) that the CBOM builders exchange.
Package collector defines CryptoAsset, the finished CycloneDX component (plus its edges) that the CBOM builders exchange.
config
Package config loads the YAML configuration file.
Package config loads the YAML configuration file.
datadir
Package datadir decides where the server keeps its database when --db is not given.
Package datadir decides where the server keeps its database when --db is not given.
derive
Package derive turns present artefacts into capability, by applying cited knowledge.
Package derive turns present artefacts into capability, by applying cited knowledge.
discover
Package discover runs the host discovery pipeline end to end:
Package discover runs the host discovery pipeline end to end:
estate
Package estate is the platform-neutral model of a whole cryptographic estate: the things found (certificates, algorithms, software, protocol configuration) and the observations that say who saw them, how, and how strongly.
Package estate is the platform-neutral model of a whole cryptographic estate: the things found (certificates, algorithms, software, protocol configuration) and the observations that say who saw them, how, and how strongly.
eval
Package eval turns an observed TLS scan report into judgements: findings with severities, a post-quantum readiness level, and a TLS hygiene score.
Package eval turns an observed TLS scan report into judgements: findings with severities, a post-quantum readiness level, and a TLS hygiene score.
evidence
Package evidence is the platform-neutral record of what a host collector saw, and the rules that stop a report claiming more than was seen.
Package evidence is the platform-neutral record of what a host collector saw, and the rules that stop a report claiming more than was seen.
hostcmd
Package hostcmd implements the host-inventory command line: `run`, `plugins` and `version`.
Package hostcmd implements the host-inventory command line: `run`, `plugins` and `version`.
hostinfo
Package hostinfo identifies the machine being inventoried and the privilege the run has: the two facts every report about a host needs and no sensor should have to work out for itself.
Package hostinfo identifies the machine being inventoried and the privilege the run has: the two facts every report about a host needs and no sensor should have to work out for itself.
importer
Package importer turns an untrusted third-party CycloneDX document into something the estate graph can hold, in four layers that are applied in a fixed order and tested separately (ENG-HANDOFF-002 D9):
Package importer turns an untrusted third-party CycloneDX document into something the estate graph can hold, in four layers that are applied in a fixed order and tested separately (ENG-HANDOFF-002 D9):
knowledge
Package knowledge holds what is known about cryptographic software independent of any host: which package or file names belong to which family, and which algorithms a family's releases provide, each with its citation.
Package knowledge holds what is known about cryptographic software independent of any host: which package or file names belong to which family, and which algorithms a family's releases provide, each with its citation.
machinefacts
Package machinefacts turns the plain-text facts file written by the inventory scripts (cipherhorizon-inventory.ps1 and cipherhorizon-inventory.sh) into a CycloneDX CBOM.
Package machinefacts turns the plain-text facts file written by the inventory scripts (cipherhorizon-inventory.ps1 and cipherhorizon-inventory.sh) into a CycloneDX CBOM.
pdf
Package pdf writes small, self-contained PDF documents for CipherHorizon's reports: A4 pages, the four standard fonts (no font files to embed), filled and stroked shapes, links and a flat outline.
Package pdf writes small, self-contained PDF documents for CipherHorizon's reports: A4 pages, the four standard fonts (no font files to embed), filled and stroked shapes, links and a flat outline.
pdf/pdfcheck
Package pdfcheck reads back the PDFs package pdf writes, for tests: it checks the cross-reference table points at every object, then returns the page count, the text shown, the links and the outline titles.
Package pdfcheck reads back the PDFs package pdf writes, for tests: it checks the cross-reference table points at every object, then returns the page count, the text shown, the links and the outline titles.
pki
Package pki holds the certificate-path logic the TLS evaluation needs: the analysis of a served chain, path validation per anchor set (with the constraints root programs apply), certificate-name matching, and decoders for a stapled OCSP response and an SCT list.
Package pki holds the certificate-path logic the TLS evaluation needs: the analysis of a served chain, path validation per anchor set (with the constraints root programs apply), certificate-name matching, and decoders for a stapled OCSP response and an SCT list.
pki/pkitest
Package pkitest builds small test PKIs at test time: a root, intermediates and leaf variants with exactly the properties a fixture needs.
Package pkitest builds small test PKIs at test time: a root, intermediates and leaf variants with exactly the properties a fixture needs.
pqc
Package pqc classifies the algorithms in a CBOM as quantum-vulnerable or quantum-safe, citing the standard or OID basis for every verdict.
Package pqc classifies the algorithms in a CBOM as quantum-vulnerable or quantum-safe, citing the standard or OID basis for every verdict.
refdata
Package refdata holds the dated reference lists the TLS evaluation judges against: the Mozilla and Chrome root stores (with their distrust constraints), the published Diffie-Hellman groups, the CT log list and the certificate-lifetime limits.
Package refdata holds the dated reference lists the TLS evaluation judges against: the Mozilla and Chrome root stores (with their distrust constraints), the published Diffie-Hellman groups, the CT log list and the certificate-lifetime limits.
refdata/gen command
Command gen turns downloaded reference sources into the Go tables in the parent package.
Command gen turns downloaded reference sources into the Go tables in the parent package.
reportpdf
Package reportpdf lays out CipherHorizon's downloadable PDF reports: the endpoint report (full, TLS-only and certificate-only) and the inventory report.
Package reportpdf lays out CipherHorizon's downloadable PDF reports: the endpoint report (full, TLS-only and certificate-only) and the inventory report.
schematest
Package schematest validates CycloneDX JSON documents against the specification's schema for the version the document declares (1.6 or 1.7), using the schemas embedded in internal/cdxschema.
Package schematest validates CycloneDX JSON documents against the specification's schema for the version the document declares (1.6 or 1.7), using the schemas embedded in internal/cdxschema.
sense
Package sense defines the contract every host sensor implements, the registry sensors register into, and the runner that drives them.
Package sense defines the contract every host sensor implements, the registry sensors register into, and the runner that drives them.
sense/all
Package all links in every built-in sensor.
Package all links in every built-in sensor.
sense/certfiles
Package certfiles is the sensor for X.509 certificates that a Linux host keeps as files: the system trust store, CA anchors, and the certificates of the services that run on it.
Package certfiles is the sensor for X.509 certificates that a Linux host keeps as files: the system trust store, CA anchors, and the certificates of the services that run on it.
sense/debian
Package debian is the sensor for Debian-family hosts (Debian, Ubuntu, Kali and derivatives).
Package debian is the sensor for Debian-family hosts (Debian, Ubuntu, Kali and derivatives).
sense/pefiles
Package pefiles is the sensor for cryptographic libraries that live as loose files rather than in a package database, which is how most of them exist on Windows (an application bundles its own OpenSSL, NSS or GnuTLS).
Package pefiles is the sensor for cryptographic libraries that live as loose files rather than in a package database, which is how most of them exist on Windows (an application bundles its own OpenSSL, NSS or GnuTLS).
sense/pefiles/pefilestest
Package pefilestest builds small, valid PE images with a version resource, so the PE parser, the sensor and the pipeline are tested on any OS without shipping real binaries.
Package pefilestest builds small, valid PE images with a version resource, so the PE parser, the sensor and the pipeline are tested on any OS without shipping real binaries.
sense/sensetest
Package sensetest provides a scriptable fake sensor for testing code that drives sensors (the registry, the runner, the pipeline) without a real host.
Package sensetest provides a scriptable fake sensor for testing code that drives sensors (the registry, the runner, the pipeline) without a real host.
sense/wincerts
Package wincerts is the sensor for the certificates in the Windows system certificate stores: the machine's own certificates, the trust anchors (root and intermediate authorities), trusted publishers and trusted people, for the machine and for the user the collector runs as.
Package wincerts is the sensor for the certificates in the Windows system certificate stores: the machine's own certificates, the trust anchors (root and intermediate authorities), trusted publishers and trusted people, for the machine and for the user the collector runs as.
sense/wincng
Package wincng is the sensor for the cryptography Windows itself provides: the CNG algorithm registry and primitive providers, key storage providers (KSPs) and legacy cryptographic service providers (CSPs).
Package wincng is the sensor for the cryptography Windows itself provides: the CNG algorithm registry and primitive providers, key storage providers (KSPs) and legacy cryptographic service providers (CSPs).
server
Package server is the product's HTTP surface: the JSON API, the embedded UI, the scan runner and the scheduler.
Package server is the product's HTTP surface: the JSON API, the embedded UI, the scan runner and the scheduler.
signatures
Package signatures is the database of what the machine inventory scripts collect (PRD-006 D4).
Package signatures is the database of what the machine inventory scripts collect (PRD-006 D4).
sshcbom
Package sshcbom builds the CycloneDX components an SSH scan observed (PRD-008 REQ-SHO-1): one protocol component of type ssh, an algorithm component for every advertised key exchange, host key algorithm, cipher and MAC the catalogue knows, and every host key as a public key.
Package sshcbom builds the CycloneDX components an SSH scan observed (PRD-008 REQ-SHO-1): one protocol component of type ssh, an algorithm component for every advertised key exchange, host key algorithm, cipher and MAC the catalogue knows, and every host key as a public key.
sshprobe
Package sshprobe actively probes an SSH server and reports, with evidence, what it offers: its identification, every algorithm it advertises, what a current client negotiates with it, and each of its host keys.
Package sshprobe actively probes an SSH server and reports, with evidence, what it offers: its identification, every algorithm it advertises, what a current client negotiates with it, and each of its host keys.
sshprobe/registry
Package registry describes the SSH algorithm names a server may advertise: what each one is, which standard defines it, and the facts the evaluation judges it by (hash, group size, cipher mode, post-quantum).
Package registry describes the SSH algorithm names a server may advertise: what each one is, which standard defines it, and the facts the evaluation judges it by (hash, group size, cipher mode, post-quantum).
sshprobe/testserver
Package testserver runs SSH servers on loopback for testing the SSH prober and for the demo targets: real servers from golang.org/x/crypto/ssh (an implementation independent of the prober's, so a misreading of the RFC cannot pass because both ends share it), and a scripted server for what no library will do (SSH-1 banners, preambles, hostile names, lists without strict key exchange, key exchanges no library implements).
Package testserver runs SSH servers on loopback for testing the SSH prober and for the demo targets: real servers from golang.org/x/crypto/ssh (an implementation independent of the prober's, so a misreading of the RFC cannot pass because both ends share it), and a scripted server for what no library will do (SSH-1 banners, preambles, hostile names, lists without strict key exchange, key exchanges no library implements).
sshprobe/wire
Package wire reads and writes the parts of the SSH transport protocol (RFC 4253) a scanner needs before any key is derived: the identification line, the unencrypted binary packets, KEXINIT, the key-exchange init and reply messages, public-key and signature blobs and OpenSSH certificates.
Package wire reads and writes the parts of the SSH transport protocol (RFC 4253) a scanner needs before any key is derived: the identification line, the unencrypted binary packets, KEXINIT, the key-exchange init and reply messages, public-key and signature blobs and OpenSSH certificates.
store
Package store keeps assets, scans and their history in one SQLite file.
Package store keeps assets, scans and their history in one SQLite file.
tlscbom
Package tlscbom turns an active TLS scan's observations into CBOM assets.
Package tlscbom turns an active TLS scan's observations into CBOM assets.
tlsprobe
Package tlsprobe actively probes a TLS server and reports what it supports: protocol versions, every cipher suite, key-exchange groups (including post-quantum hybrids), and certificates.
Package tlsprobe actively probes a TLS server and reports what it supports: protocol versions, every cipher suite, key-exchange groups (including post-quantum hybrids), and certificates.
tlsprobe/registry
Package registry holds the TLS cipher-suite and supported-group registries the prober works from.
Package registry holds the TLS cipher-suite and supported-group registries the prober works from.
tlsprobe/registry/gen command
Command gen turns IANA's TLS registry CSVs into the Go tables in the parent package.
Command gen turns IANA's TLS registry CSVs into the Go tables in the parent package.
tlsprobe/testserver
Package testserver provides hermetic servers for testing the TLS prober without touching the network: real crypto/tls servers whose versions, suites and groups are configurable, and a scripted raw-TCP server for replies the standard library cannot produce (SSLv2/SSLv3, garbage, stalls).
Package testserver provides hermetic servers for testing the TLS prober without touching the network: real crypto/tls servers whose versions, suites and groups are configurable, and a scripted raw-TCP server for replies the standard library cannot produce (SSLv2/SSLv3, garbage, stalls).
tlsprobe/wire
Package wire implements just enough of the TLS/SSL wire protocol to probe a server: it builds ClientHello messages the standard library will not send (SSLv3, arbitrary suite and group lists, empty key shares) and parses what a server answers, up to the point where the rest is encrypted.
Package wire implements just enough of the TLS/SSL wire protocol to probe a server: it builds ClientHello messages the standard library will not send (SSLv3, arbitrary suite and group lists, empty key shares) and parses what a server answers, up to the point where the rest is encrypted.
version
Package version holds the build identity, stamped at link time by the release build:
Package version holds the build identity, stamped at link time by the release build:
winapi
Package winapi is the platform layer for Windows cryptography: the ONLY code in the collector that calls the CNG, key storage and legacy CSP APIs.
Package winapi is the platform layer for Windows cryptography: the ONLY code in the collector that calls the CNG, key storage and legacy CSP APIs.
winsvc
Package winsvc is the platform layer for running as a Windows service: it talks to the Service Control Manager and sets folder permissions, and knows nothing else about the program (internal/app decides what the service runs and where its files go).
Package winsvc is the platform layer for running as a Windows service: it talks to the Service Control Manager and sets folder permissions, and knows nothing else about the program (internal/app decides what the service runs and where its files go).
testing
hostdiscovery/authenticode-probe command
authenticode-probe is an INVESTIGATION tool, not part of the collector and not shipped.
authenticode-probe is an INVESTIGATION tool, not part of the collector and not shipped.
hostdiscovery/certfiles-probe command
certfiles-probe is a VALIDATION tool, not part of the collector and not shipped.
certfiles-probe is a VALIDATION tool, not part of the collector and not shipped.
Package web holds the embedded user interface: plain HTML, CSS and ES modules, with no build step and no external requests.
Package web holds the embedded user interface: plain HTML, CSS and ES modules, with no build step and no external requests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL