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). |
|
x509view
Package x509view decodes one certificate for people (PRD-012, ENH-003): every field of the X.509 document and every extension, in the order an engineer reads them, with the public key's and the signature's classical strength and post-quantum status.
|
Package x509view decodes one certificate for people (PRD-012, ENH-003): every field of the X.509 document and every extension, in the order an engineer reads them, with the public key's and the signature's classical strength and post-quantum status. |
|
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. |
Click to show internal directories.
Click to hide internal directories.




