Output Schema Reference

Flags: -cipherscanquick -scanfilesystem -scanmemory -scanconnected

Every field for JSON and Flat NDJSON output - no ellipses, no truncation

View interactive object diagram →

How To Read This Page

This page documents one specific scan shape: local mode with -cipherscanquick -scanfilesystem -scanmemory -scanconnected. It is meant to answer two questions quickly: what can appear in the hierarchical JSON report and what can appear as event datasets in Flat NDJSON.

JSON

Use this when you want the canonical nested report. Arrays and objects stay intact, and repeated structures like certificates and keystores are reused across the report.

Flat NDJSON

Use this when you want one object per event for pipelines and SIEM ingestion. Nested values are flattened into dot-notation fields or serialized strings.

Coverage rule

The page lists fields that can appear for this flag combination. Many are conditional and only show up when a relevant port, certificate, keystore, or memory artifact is actually found.

Reuse rule

When a field says "same fields as CertificateDetails", "same fields as KeystoreInfo", and similar, the structure is reused exactly rather than redefined differently.

Omitted versus null

Most optional fields are omitted when empty. That is especially important when comparing the JSON report to Flat NDJSON output.

Table of Contents

Start with the JSON root or the NDJSON base fields, then jump to the structures or event datasets you care about.

Overview

Running with -cipherscanquick -scanfilesystem -scanmemory -scanconnected in local mode produces:

-cipherscanquick

Fast 3-loop TLS enumeration per listening port. Builds AppCentricReport. Emits port_detail, tychon.cipher_quick, tychon.application, tychon.pqc_inventory.

-scanfilesystem

Walks filesystem for certificates, private keys, and keystores. Emits certificate, private_key, keystore_certificate, keystore.

-scanmemory

Scans running process memory for crypto libraries. Emits memory_scan (native) and java_crypto (JVM).

-scanconnected

Enumerates active outbound network connections, probes each for TLS, and records the result. Emits tychon.connected_quick. Browser processes are excluded automatically.

A quantum_assessment event is emitted as part of readiness scoring, while unrelated scan families such as Outlook, VPN, and IPSec remain outside this switch set.

Quick Crosswalk

Scan featurePrimary JSON sectionPrimary Flat NDJSON dataset(s)What to expect
-cipherscanquickresults[], app_report, quantum_readinessport_detail, tychon.cipher_quick, tychon.application, tychon.pqc_inventory, quantum_assessmentQuick TLS enumeration drives the application-centric output in local mode.
-scanfilesystemfilesystem_scan_results[], keystore_results[], related portions of app_reportcertificate, private_key, keystore_certificate, keystoreFilesystem findings can belong to an application or remain under orphan findings.
-scanmemoryprocess_memory_scan_results[], related portions of app_reportmemory_scan, java_cryptoMemory findings are process-centric and may overlap with the same application already represented elsewhere.
-scanconnectedconnected_quick_results[]tychon.connected_quickOne record per active outbound connection (non-browser). Records remote IP, port, source process, and whether TLS was confirmed. Full cipher details are not captured.

Legend and Reading Shortcuts

Provenance badges

Source Which switch produces the field or section.

Conditional Present only when the relevant artifact was found or the value was non-empty.

Platform Windows-only, macOS-only, or Linux-only nuances.

Format JSON canonical structure versus NDJSON flattened or serialized output.

Three fast rules

1. JSON sections are the source of truth for nested shapes.

2. NDJSON usually flattens those same shapes into dot-path fields or serialized JSON strings.

3. When an NDJSON section says it reuses CertificateDetails, KeystoreInfo, or Application, jump to that canonical section first.

Example Payloads

These are intentionally small examples meant to show shape, not every possible field. Use them to orient yourself before diving into the full tables.

Minimal JSON shape

{
  "scan_type": "local",
  "results": [
    {
      "hostname": "localhost",
      "ports": [
        {
          "port": 443,
          "leaf_certificate": { "...": "CertificateDetails" },
          "quick_cipher_scan": { "...": "QuickCipherScanResult" }
        }
      ]
    }
  ],
  "filesystem_scan_results": [
    { "...": "CertificateDetails" }
  ],
  "process_memory_scan_results": [
    { "...": "ProcessCryptoInfo" }
  ],
  "keystore_results": [
    { "...": "KeystoreInfo" }
  ],
  "app_report": {
    "applications": [
      { "...": "Application" }
    ]
  }
}

Representative NDJSON lines

{"event.dataset":"port_detail","port":443,"tls.version":"tls1.2"}
{"event.dataset":"certificate","certificate.subject_common_name":"example.local"}
{"event.dataset":"memory_scan","process.pid":4120,"library.crypto_type":"OpenSSL"}
{"event.dataset":"keystore","file.path":"C:/app/keystore.p12"}
{"event.dataset":"tychon.application","tychon.application.name":"nginx"}

Repeated Structures You Will See Often

Most of the apparent duplication in this schema comes from the same small set of shared structures being reused in multiple places. Use these as your anchor definitions, then treat later references as placements of the same shape.

CertificateDetails

Reused for TLS leaf certificates, certificate chains, filesystem certificates, SSH certificate-backed host keys, and application-level certificate attachments.

KeystoreInfo

Reused for top-level filesystem keystore results, orphan findings, and keystores attached to individual applications.

ProcessCryptoInfo

Defines the memory-scan process view and the crypto library material that later shows up summarized in application-centric output.

SSHScanResult and SSHCryptoNegotiationInfo

Used when SSH is present instead of TLS, both in per-port JSON results and in references from application ports.

Field Search

Filter the full schema by field name, dataset, type, or description. Matching rows remain visible across both JSON and Flat NDJSON tables.

Showing all fields.

Part 1 - JSON Output (ScanReport)

The JSON file is the canonical hierarchical representation. Every field listed here maps directly to a Go struct JSON tag, and later sections often reference the shared structures defined earlier instead of redefining them from scratch.

ScanReport - root object
FieldTypeDescription
scanning_system_infoobjectMachine and scanner identity. See ScanningSystemInfo.
database_schema_versionstringVersion of the intel database schema embedded in the binary.
output_schema_versionstringVersion of the JSON output schema. Increment when field names or structure changes break consumers.
scan_typestringScan mode: "local", "remote", or "connected".
target_input_stringstringRaw value of the -host flag or "localhost" for local scans.
timestamptimeRFC3339 scan start timestamp.
tags[]stringUser-supplied tags from the -tags flag.
results[]HostScanResultPer-host port scan results. See HostScanResult.
process_memory_scan_results[]ProcessCryptoInfoMemory scan results per process. Populated with -scanmemory. See ProcessCryptoInfo.
filesystem_scan_results[]CertificateDetailsFilesystem certificates and private keys. Populated with -scanfilesystem.
keystore_results[]KeystoreInfoKeystore files found on disk. See KeystoreInfo.
outlook_archives[]OutlookArchiveInfoOutlook PST/OST archives. Not emitted by these flags.
vpn_client_scan_results[]VPNClientInfoVPN clients detected. Not emitted by these flags.
ipsec_tunnel_scan_results[]IPSecTunnelInfoIPSec tunnels detected. Not emitted by these flags.
connected_quick_results[]ConnectedQuickResultActive outbound network connections enumerated by -scanconnected. One entry per non-browser connection. Omitted when -scanconnected was not specified or no connections were found. See ConnectedQuickResult.
quantum_readinessobjectComposite quantum readiness assessment. See QuantumReadinessAssessment.
app_reportobjectApplication-centric view. Populated by -cipherscanquick in local mode. See AppCentricReport.
ScanningSystemInfo
FieldTypeDescription
software_versionstringScanner binary version string.
hostnamestringSystem hostname.
domainstringActive Directory or DNS domain name.
current_userstringUsername running the scanner process.
user_uidstringUID of the running user (Linux/macOS).
user_gidstringGID of the running user (Linux/macOS).
user_home_dirstringHome directory path of the running user.
ip_addresses[]stringAll IP addresses assigned to the host.
osstringOS name (e.g., "Windows", "linux", "darwin").
platformstringOS platform identifier (e.g., "ubuntu", "windows").
platform_familystringOS family (e.g., "debian", "rhel", "windows").
platform_versionstringOS version string.
kernel_versionstringKernel version string.
kernel_archstringCPU architecture (e.g., "x86_64", "arm64").
virtualization_systemstringVirtualization system detected (e.g., "vmware", "kvm").
virtualization_rolestringRole in virtualization (e.g., "guest", "host").
host_idstringStable unique host identifier (machine UUID or derived).
cpu_vendor_idstringCPU vendor string (e.g., "GenuineIntel").
cpu_model_namestringCPU model name string.
cpu_coresint32Physical CPU core count.
cpu_logical_coresintLogical CPU core count (includes hyperthreading).
total_ram_bytesuint64Total installed RAM in bytes.
ram_used_percentfloat64RAM utilization percentage at scan time.
system_uptime_secondsuint64System uptime in seconds.
openssl_version_usedstringOpenSSL version string used by the scanner.
openssl_path_usedstringFilesystem path to the OpenSSL binary used.
fips_mode_enabledboolTrue when the OS FIPS enforcement mode is active.
errorstringError collecting system info (if any).
machine_serial_numberstringHardware serial number (from SMBIOS/DMI).
bios_serial_numberstringBIOS serial number.
organizationstringOrganization name from system configuration.
bigfix_client_installedboolTrue when HCL BigFix client is detected on the host.
bigfix_client_idstringBigFix client computer ID.
tychon_client_idstringTYCHON client identifier for asset correlation.
is_vdi_environmentboolTrue when VDI environment (VMware Horizon, Citrix, RDS) is detected.
vdi_identity_sourcestringSource of the stable VDI host identity (e.g., "profile_file", "username_hash").
kerberos_configKerberosConfigKerberos encryption type configuration. Windows only — config_source is not_applicable on Linux/macOS.
kerberos_config.config_sourcestringWhere the configuration was read from: group_policy, lsa_direct, os_default, or not_applicable.
kerberos_config.is_explicitly_configuredboolTrue when the SupportedEncryptionTypes registry value is explicitly set.
kerberos_config.supported_types[]stringPermitted Kerberos encryption type names (e.g., ["AES256-CTS-HMAC-SHA1-96","RC4-HMAC"]). null when not configured.
kerberos_config.has_rc4boolTrue when RC4-HMAC is permitted (deprecated — exploitable via Kerberoasting).
kerberos_config.has_desboolTrue when DES-CBC-CRC or DES-CBC-MD5 is permitted (broken — should never be enabled).
kerberos_config.has_aes128boolTrue when AES128-CTS-HMAC-SHA1-96 is permitted.
kerberos_config.has_aes256boolTrue when AES256-CTS-HMAC-SHA1-96 is permitted.
kerberos_config.is_quantum_safeboolTrue only when exclusively AES is permitted (no RC4, no DES) and at least one AES variant is present.
non_tls_ciphers[]NonTlsCipherProfile[]Cipher profiles for protocols with their own crypto stacks (SMB3, SNMPv3, Kerberos, IBM MQ, NFS, STARTTLS services). Each profile also emits as a tychon.non_tls_cipher NDJSON event. See tychon.non_tls_cipher fields.
NonTlsCipherProfile

One entry per detected non-TLS protocol. Field names mirror QuickCipherScanResult for schema consistency. Emitted for SMB3 (port 445), SNMPv3 (port 161), and Kerberos (port 88).

FieldTypeDescription
protocolstringProtocol identifier: SMB3, SNMPv3, or Kerberos.
portintWell-known port (445, 161, 88). Omitted when detection came from a config file only.
supported_ciphers[]string[]Cipher or enctype strings considered safe (e.g. AES-256-GCM, AES256-CTS-HMAC-SHA1-96).
insecure_ciphers[]string[]Broken or banned cipher/enctype strings (e.g. DES, RC4-HMAC, 3DES).
weak_ciphers[]string[]Deprecated but not yet banned cipher strings (e.g. MD5-HMAC, SHA-1 auth in SNMPv3 USM).
preferred_cipherstringCipher selected during network negotiation. Only present for SMB3 network probes.
auth_algorithms[]string[]Authentication algorithm names (SNMPv3 USM auth protocols, Kerberos pre-auth types).
is_encryptedboolWhether the protocol session is encrypted.
pqc_vulnerableboolTrue when any cipher is vulnerable to a cryptographically-relevant quantum computer.
pqc_readinessstringOne of safe, transitional, or vulnerable.
quantum_riskstringOne of low, medium, high, or critical.
migration_prioritystringOne of low, medium, high, or critical.
supported_protocols[]stringTLS versions negotiated during a STARTTLS probe, e.g. ["TLS 1.3"]. Populated by SMTP, IMAP, LDAP, PostgreSQL probes only.
recommended_actionstringHuman-readable remediation suggestion.
config_sourcestringDetection method: network_probe, registry, registry_group_policy, registry_lsa_direct, registry_os_default, krb5_conf, krb5_conf_defaults, snmpd_conf, starttls_probe, not_found.
  • results[] -> HostScanResult
  • FieldTypeDescription
    scanned_hoststringHostname or IP address scanned.
    domainstringDomain associated with this host.
    resolved_ipstringActual IP that responded during the scan (may differ from hostname).
    ports[]PortResultPort scan results. See PortResult.
    scan_typestring"local", "remote", or "connected".
    PortResult (results[].ports[] and app_report.applications[].ports[])
    FieldTypeDescription
    portintTCP port number.
    statusstringPort status: "open", "closed", "filtered", "error".
    error_messagestringError detail when connection failed.
    protocol_detectedstringDetected application protocol (e.g., "tls", "ssh", "plaintext").
    process_infoobjectProcess owning this port. See ProcessDetails.
    leaf_certificateobjectTLS leaf certificate. See CertificateDetails.
    certificate_chain[]CertificateDetailsFull TLS certificate chain including intermediates and root.
    supported_cipher_suites[]MainCipherNegotiationInfoAll cipher suites probed. See MainCipherNegotiationInfo.
    quick_cipher_scanobjectQuick cipher enumeration result. See QuickCipherScanResult.
    ssh_infoobjectSSH scan result. See SSHScanResult.
    heartbleed_statusstringHeartbleed vulnerability status string.
    heartbleed_detailsstringHeartbleed detail message.
    quantum_ready_kxboolTrue when key exchange is quantum-safe (PQC KEX detected).
    quantum_ready_cipherboolTrue when cipher suite provides post-Grover resistance (AES-256+).
    quantum_ready_certboolTrue when leaf certificate uses a quantum-resistant signature algorithm.
    quantum_readyboolTrue only when all three quantum dimensions pass.
    quantum_gradeobjectDetailed quantum grade for this port. See PortQuantumGrade.
    iis_siteobjectIIS site info (Windows, PID 4) — site name, bindings, and virtual host identity.
    ibmmq_infoNonTlsCipherProfileIBM MQ cipher profile when an IBM MQ channel (plaintext or TLS) is detected on this port. Present only when IBM MQ is identified. See NonTlsCipherProfile fields.
    nfs_infoNonTlsCipherProfileNFS cipher profile when a Network File System mount or export is detected on this port. Reflects the negotiated security flavor (e.g. sys, krb5p, tls). Present only when NFS is identified. See NonTlsCipherProfile fields.
    ProcessDetails (process_info)
    FieldTypeDescription
    pidint32Process ID.
    namestringProcess name.
    command_linestringFull command line string.
    usernamestringUsername running the process.
    create_timetimeProcess creation timestamp.
    executable_detailsobjectFile metadata for the process executable. See FileDetails.
    service_infoobjectWindows service metadata when the process is a registered service (Windows only; absent otherwise).
    service_info.namestringWindows service short name (registry key name).
    service_info.display_namestringWindows service display name shown in the Services console.
    service_info.descriptionstringWindows service description text.
    service_info.statestringService run state (lowercase). One of: running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown.
    errorstringError collecting process details.
    Canonical FileDetails (executable_details, file_details)
    FieldTypeDescription
    pathstringAbsolute filesystem path.
    sizeint64File size in bytes.
    sha1_hashstringSHA-1 hex digest.
    sha256_hashstringSHA-256 hex digest.
    md5_hashstringMD5 hex digest.
    mod_timetimeLast modification time.
    create_timetimeFile creation time.
    access_timetimeLast access time.
    extensionstringFile extension (e.g., ".pem").
    namestringFilename without directory.
    attributesstringFile permission/attribute string.
    file_versionstringWindows PE file version (e.g., "10.0.19041.1").
    product_versionstringWindows PE product version.
    product_namestringWindows PE product name.
    company_namestringWindows PE company name.
    ownerstringFile owner username.
    groupstringFile group name.
    errorstringError collecting file metadata.
    Canonical CertificateDetails (leaf_certificate, certificate_chain[], filesystem_scan_results[])

    Source Appears in network and filesystem findings. Format This is the canonical nested structure reused by JSON and then flattened or serialized in NDJSON.

    FieldTypeDescription
    universal_idstringStable unique ID for deduplication across outputs.
    source_idstringSource-specific unique identifier.
    source_file_pathstringFilesystem path where this certificate was found.
    versionintX.509 certificate version (2 = v3).
    serial_numberstringHex-encoded certificate serial number.
    signature_algorithmstringSignature algorithm (e.g., "SHA256-RSA", "ECDSA-SHA384").
    issuerobjectIssuer distinguished name. See DistinguishedName.
    subjectobjectSubject distinguished name. See DistinguishedName.
    validityobjectCertificate validity period.
    validity.not_beforetimeCertificate valid-from timestamp (RFC3339).
    validity.not_aftertimeCertificate expiry timestamp (RFC3339).
    validity.duration_daysintTotal validity duration in days (not_after - not_before).
    subject_public_key_infoobjectPublic key details. See PublicKeyDetails.
    signature_hexstringRaw signature bytes as hex string.
    authority_key_idstringAuthority Key Identifier extension value.
    subject_key_idstringSubject Key Identifier extension value.
    key_usage[]stringKey usage bits (e.g., ["Digital Signature", "Key Encipherment"]).
    extended_key_usage[]stringExtended key usage OID names (e.g., ["TLS Web Server Authentication"]).
    unknown_extended_key_usage_oids[]stringUnrecognized EKU OIDs as dotted strings.
    basic_constraintsobjectX.509 Basic Constraints extension.
    basic_constraints.is_caboolTrue when certificate is a Certificate Authority.
    basic_constraints.max_path_lenintMaximum CA chain path length (-1 when not constrained).
    basic_constraints.max_path_len_zeroboolTrue when max path length is explicitly set to 0 (leaf CA only).
    subject_alternative_namesobjectSubject Alternative Names (SAN) extension.
    subject_alternative_names.dns_names[]stringDNS SANs (e.g., ["example.com", "*.example.com"]).
    subject_alternative_names.email_addresses[]stringEmail SANs.
    subject_alternative_names.ip_addresses[]stringIP address SANs as strings.
    subject_alternative_names.uris[]stringURI SANs.
    crl_distribution_points[]stringCRL distribution point URLs.
    ocsp_servers[]stringOCSP responder URLs.
    issuing_certificate_urls[]stringAIA issuing certificate URLs.
    policy_identifiers[]stringCertificate policy OIDs.
    unhandled_critical_extensions_oids[]stringCritical extensions that could not be parsed.
    permitted_dns_domains_criticalboolTrue when name constraints extension is marked critical.
    permitted_dns_domains[]stringPermitted DNS domain name constraints.
    excluded_dns_domains[]stringExcluded DNS domain name constraints.
    sha1_fingerprintstringSHA-1 fingerprint of the DER-encoded certificate.
    sha256_fingerprintstringSHA-256 fingerprint of the DER-encoded certificate.
    is_self_signedboolTrue when issuer equals subject.
    raw_pem_certificatestringPEM-encoded certificate (base64 DER).
    parse_errorstringError when certificate could not be fully parsed.
    activeboolAsset tracking: written only when false (tombstoned asset not seen in current scan); absent when asset is currently active.
    last_seenstringISO8601 timestamp when this cert was last observed (tombstoned assets only).
    is_private_keyboolTrue when this entry is a private key rather than a certificate.
    pqc_vulnerableboolTrue when the key algorithm is vulnerable to a cryptographically-relevant quantum computer.
    pqc_readinessstringPQC readiness classification: "vulnerable", "transitional", "resistant".
    crypto_librarystringCrypto library that issued this certificate.
    key_strength_assessmentstringKey strength: "weak", "adequate", "strong".
    quantum_riskstringQuantum risk level: "high", "medium", "low".
    recommended_actionstringHuman-readable recommended remediation action.
    migration_prioritystringMigration urgency: "critical", "high", "medium", "low".
    encryptionobjectEncryption metadata for password-protected private keys. Same sub-fields as KeystoreInfo.encryption (algorithm, kdf, iterations, mac, vulnerable, reason, iv_length, salt_length).
    file_detailsobjectFile metadata for filesystem certificates. See FileDetails.

    DistinguishedName (issuer / subject)

    FieldTypeDescription
    common_namestringCN field.
    serial_numberstringSERIALNUMBER attribute.
    country[]stringC fields.
    organization[]stringO fields.
    organizational_unit[]stringOU fields.
    locality[]stringL fields.
    province[]stringST fields.
    street_address[]stringStreet address.
    postal_code[]stringPostal code.
    raw_stringstringFull RFC2253 DN string.

    PublicKeyDetails (subject_public_key_info)

    FieldTypeDescription
    algorithmstringAlgorithm name (e.g., "RSA", "EC", "Ed25519", "ML-DSA-65").
    bit_sizeintKey size in bits.
    curvestringElliptic curve name (e.g., "P-256", "P-384").
    rsa_exponentint64RSA public exponent.
    rsa_modulus_hexstringRSA modulus as hex string.
    raw_der_base64stringRaw DER-encoded public key as base64.
    ecdsa_x_hexstringECDSA public key X coordinate as hex.
    ecdsa_y_hexstringECDSA public key Y coordinate as hex.
    eddsa_public_key_hexstringEdDSA public key bytes as hex.
    MainCipherNegotiationInfo (supported_cipher_suites[])
    FieldTypeDescription
    universal_idstringStable unique ID for this cipher observation.
    source_idstringSource-specific unique identifier.
    protocolstringTLS protocol version (e.g., "TLSv1.3", "TLSv1.2").
    cipher_suitestringIANA cipher suite name (e.g., "TLS_AES_256_GCM_SHA384").
    key_length_bitsintNegotiated key length in bits.
    negotiated_groupstringKey exchange group (e.g., "X25519", "X25519MLKEM768", "P-256").
    ephemeral_key_length_bitsintEphemeral key length in bits.
    peer_signing_digeststringHash algorithm used in the server's CertificateVerify.
    alpn_protocolstringNegotiated ALPN protocol (e.g., "h2", "http/1.1").
    session_idstringTLS session ID (hex).
    session_ticket_lifetime_hint_secondsintSession ticket lifetime hint in seconds.
    extended_master_secret_supportedboolTrue when Extended Master Secret (RFC 7627) is negotiated.
    tls13_early_data_supportedboolTrue when 0-RTT early data is supported.
    renegotiation_forbiddenboolTrue when renegotiation is disabled by the server.
    compression_methodstringTLS compression method (usually "none").
    is_preferredboolTrue for the server's preferred (anchor) cipher suite.
    sourcestringHow this entry was discovered: "anchor", "swarm", or "swarm+intel".
    probe_methodstringProbe technique: "openssl", "utls_standard", or "utls_hrr".
    intelmapCipher intelligence data. See Intel Map fields below.
    activeboolAsset tracking: written only when false (tombstoned); absent when cipher is currently observed.
    last_seenstringLast observation timestamp for tombstoned entries.

    intel map - cipher intelligence fields

    KeyTypeDescription
    cipher_namestringIANA cipher suite name.
    OpenSSL_NamestringOpenSSL cipher name equivalent.
    Security_CategorystringSecurity category string.
    nist_security_categorystringNIST security category.
    overall_riskstringRisk level: Low, Medium, High, Critical.
    DescriptionstringHuman-readable cipher description.
    recommendationsstringRecommended action for this cipher.
    is_nist_approvedboolTrue when cipher is NIST-approved.
    is_fips140_2_compliantboolFIPS 140-2 compliant cipher algorithms.
    is_fips140_3_compliantboolFIPS 140-3 compliant cipher algorithms.
    is_cipher_quantum_resistantboolTrue for AES-256 and ChaCha20 (>=128-bit post-Grover resistance).
    is_cipher_quantum_resistantboolTrue for AES-256 and ChaCha20 (>=128-bit post-Grover resistance).
    cipher_quantum_resistance_bitsintEffective post-Grover bits: AES-256->256, AES-128->64, 3DES->56, broken->0.
    is_pci_dss_compliantboolPCI DSS v4.0 compliant.
    is_cis_compliantboolCIS Benchmarks L1 compliant.
    is_nist_800_131a_compliantboolNIST SP 800-131A rev2 compliant.
    is_hipaa_compliantboolHIPAA guidance compliant.
    is_cnsa_20_compliantboolNSA CNSA 2.0 cipher dimension only (AES-256-GCM-SHA-384).
    is_tls13_onlyboolTrue for the 5 TLS 1.3-exclusive cipher suites.
    protocolsstringSupported TLS protocol versions for this cipher.
    VulnerabilitiesstringKnown vulnerabilities (e.g., "BEAST, POODLE").
    Recommended_IANAstringRecommended replacement cipher.
    rfc_referencestringDefining RFC number.
    Key_Exchange_AlgorithmstringKey exchange algorithm (e.g., "ECDHE", "RSA").
    authentication_algorithmstringAuthentication algorithm (e.g., "RSA", "ECDSA").
    Encryption_AlgorithmstringSymmetric encryption algorithm (e.g., "AES-256-GCM").
    encryption_bitsintSymmetric key size in bits.
    aead_macstringAEAD/MAC algorithm (e.g., "SHA-384").
    DTLS_OKstring"Yes"/"No" - whether cipher is usable with DTLS.
    kex_quantum_safeboolTrue when the negotiated key exchange is quantum-safe.
    kex_familystringKEX family: pure_pqc, hybrid_pqc, ecdh, dh_ff, rsa_kex, null_anon.
    kex_cnsa_20_levelstringKEX CNSA 2.0 level: full, transition, classical_acceptable, none.
    kex_display_namestringHuman-readable KEX name (e.g., "X25519 + ML-KEM-768").
    kex_is_pqc_hybridboolTrue for hybrid PQC+classical key exchanges.
    kex_pqc_componentstringPQC algorithm component (e.g., "ML-KEM-768").
    kex_security_bits_pqcintPQC security bits of the key exchange.
    kex_nist_standardstringNIST PQC standard (e.g., "FIPS-203").
    kex_overall_riskstringKEX risk level: Low, Medium, High, Critical.
    kex_fips140_2_compliantboolKEX FIPS 140-2 compliant.
    kex_fips140_3_compliantboolKEX FIPS 140-3 compliant.
    kex_pci_dss_compliantboolKEX PCI DSS v4.0 compliant.
    kex_cis_compliantboolKEX CIS Benchmarks compliant.
    kex_nist_800_131a_compliantboolKEX NIST SP 800-131A compliant.
    kex_hipaa_compliantboolKEX HIPAA guidance compliant.
    protocol_pqc_capableboolTrue when protocol supports PQC key exchange groups (TLS 1.3 only).
    protocol_cnsa_20_approvedboolTrue when protocol is CNSA 2.0 approved (TLS 1.2+).
    protocol_deprecatedboolTrue for deprecated protocols (TLS 1.0, 1.1, SSL 3.0, SSL 2.0).
    protocol_fips140_2_compliantboolProtocol FIPS 140-2 compliant.
    protocol_fips140_3_compliantboolProtocol FIPS 140-3 compliant.
    protocol_pci_dss_compliantboolProtocol PCI DSS v4.0 compliant.
    protocol_cis_compliantboolProtocol CIS Benchmarks compliant.
    protocol_nist_800_131a_compliantboolProtocol NIST SP 800-131A compliant.
    protocol_hipaa_compliantboolProtocol HIPAA guidance compliant.
    connection_quantum_safeboolTrue when all three dimensions (protocol + KEX + cipher) are quantum-safe.
    connection_cnsa_20_levelstringConnection-level CNSA 2.0: full, transition, partial, none.
    connection_security_scoreintComposite security score 0-100.
    connection_overall_riskstringConnection risk: Low, Medium, High, Critical.
    connection_findings[]stringHuman-readable findings list.
    connection_fips140_2_compliantboolAll three dimensions FIPS 140-2 compliant.
    connection_fips140_3_compliantboolAll three dimensions FIPS 140-3 compliant.
    connection_pci_dss_compliantboolAll three dimensions PCI DSS compliant.
    connection_cis_compliantboolAll three dimensions CIS compliant.
    connection_nist_800_131a_compliantboolAll three dimensions NIST 800-131A compliant.
    connection_hipaa_compliantboolAll three dimensions HIPAA compliant.
    QuickCipherScanResult (quick_cipher_scan)
    FieldTypeDescription
    supported_protocols[]stringAll TLS protocol versions accepted by the server.
    supported_cipher_suites[]stringAll cipher suites accepted by the server.
    supported_key_exchanges[]stringAll key exchange groups accepted by the server.
    preferred_protocolstringServer's preferred TLS protocol version.
    preferred_cipherstringServer's preferred cipher suite.
    preferred_key_exchangestringServer's preferred key exchange group.
    total_probesintTotal number of TLS handshakes attempted during enumeration.
    duration_msint64Time taken for the quick cipher scan in milliseconds.
    insecure_ciphers[]stringCipher suites assessed as High risk or not NIST-approved.
    weak_ciphers[]stringCipher suites assessed as Medium risk.
    Canonical SSHScanResult (ssh_info)
    FieldTypeDescription
    statusstringSSH probe status (e.g., "connected", "error", "timeout").
    error_messagestringError detail if the SSH probe failed.
    bannerstringSSH server version banner string (e.g., "SSH-2.0-OpenSSH_8.9").
    host_keyobjectSSH host key details.
    host_key.typestringHost key type (e.g., "ecdsa-sha2-nistp256", "ssh-ed25519", "rsa-sha2-512").
    host_key.public_keystringBase64-encoded public key blob.
    host_key.fingerprint_sha256stringSHA-256 fingerprint string (e.g., "SHA256:abc123...").
    host_key.bitsintHost key size in bits.
    host_key.x509_certificateobjectX.509 certificate for host keys that use certificates (e.g., ssh-rsa-cert-v01). See CertificateDetails.
    algorithmsobjectSSH algorithm negotiation. See SSHEnhancedNegotiationInfo.
    supported_crypto_suites[]SSHCryptoNegotiationInfoPer-algorithm crypto asset records. See SSHCryptoNegotiationInfo.

    SSHEnhancedNegotiationInfo (algorithms)

    FieldTypeDescription
    server_offered_kex[]stringKey exchange algorithms offered by server in KEXINIT.
    server_offered_host_key_algos[]stringHost key algorithms offered by server.
    server_offered_ciphers_c2s[]stringEncryption algorithms offered by server (client-to-server direction).
    server_offered_ciphers_s2c[]stringEncryption algorithms offered by server (server-to-client direction).
    server_offered_macs_c2s[]stringMAC algorithms offered by server (c2s).
    server_offered_macs_s2c[]stringMAC algorithms offered by server (s2c).
    server_offered_compression[]stringCompression methods offered by server.
    negotiated_kexstringActually negotiated key exchange algorithm.
    negotiated_host_key_algostringActually negotiated host key algorithm.
    negotiated_cipher_c2sstringActually negotiated cipher (client-to-server).
    negotiated_cipher_s2cstringActually negotiated cipher (server-to-client).
    negotiated_mac_c2sstringActually negotiated MAC (client-to-server).
    negotiated_mac_s2cstringActually negotiated MAC (server-to-client).
    negotiated_compressionstringActually negotiated compression method.
    client_offered_kex[]stringKey exchange algorithms offered by scanner client.
    client_offered_host_key_algos[]stringHost key algorithms offered by scanner client.
    client_offered_ciphers[]stringCiphers offered by scanner client.
    client_offered_macs[]stringMACs offered by scanner client.
    Canonical SSHCryptoNegotiationInfo (supported_crypto_suites[])
    FieldTypeDescription
    source_idstringSource-specific unique identifier for this crypto asset record.
    protocolstringSSH protocol version string (always "SSH-2.0").
    asset_typestringType of SSH cryptographic asset. Values: "kex", "cipher", "mac", "host_key".
    algorithmstringAlgorithm name for this asset (e.g., "curve25519-sha256", "aes256-ctr", "hmac-sha2-256", "ssh-ed25519").
    key_length_bitsintKey length in bits (when known).
    ephemeral_key_length_bitsintEphemeral key length in bits (KEX assets).
    kex_algorithmstringKey exchange algorithm name (kex assets).
    encryption_cipherstringEncryption cipher name (cipher assets).
    mac_algorithmstringMAC algorithm name (mac assets).
    compression_methodstringCompression method (e.g., "none", "zlib").
    host_key_algorithmstringHost key algorithm (host_key assets).
    host_key_fingerprintstringSHA-256 fingerprint of the host key (host_key assets).
    is_preferredboolTrue when this algorithm was the negotiated (preferred) choice.
    is_legacyboolTrue when the algorithm is considered legacy or deprecated.
    is_post_quantumboolTrue when the algorithm provides post-quantum resistance.
    security_levelstringSecurity level assessment. Values: "high", "medium", "low", "weak".
    sourcestringDiscovery source: "negotiated" (actually used) or "offered" (server-advertised).
    intelmapAlgorithm intelligence data (same structure as cipher intel map; present when intel DB entry exists for this algorithm).
    activeboolAsset tracking: written only when false (tombstoned); absent when this algorithm is currently observed.
    last_seenstringRFC3339 timestamp when this algorithm was last observed (tombstoned entries only).
    Canonical ProcessCryptoInfo (process_memory_scan_results[])
    FieldTypeDescription
    piduint32Process ID.
    namestringProcess name.
    pathstringProcess executable path.
    service_infoobjectWindows service metadata when the process is a registered service (Windows only; absent otherwise).
    service_info.namestringWindows service short name (registry key name).
    service_info.display_namestringWindows service display name shown in the Services console.
    service_info.descriptionstringWindows service description text.
    service_info.statestringService run state: "running", "stopped", "start_pending", "stop_pending", "continue_pending", "pause_pending", "paused", or "unknown".
    modules[]CryptoLibraryNative crypto libraries loaded in this process. See CryptoLibrary.
    java_crypto_libs[]JavaCryptoLibraryJava crypto providers found in this process.

    CryptoLibrary (modules[])

    FieldTypeDescription
    universal_idstringStable unique ID for this library observation.
    namestringLibrary file name (e.g., "libssl.so.3", "openssl.exe").
    pathstringFull filesystem path to the library.
    file_versionstringPE file version string (Windows).
    product_versionstringPE product version string (Windows).
    company_namestringPE company name (Windows).
    product_namestringPE product name (Windows).
    descriptionstringPE file description (Windows).
    copyrightstringPE copyright string (Windows).
    piduint32PID of the owning process.
    process_namestringName of the owning process.
    base_addruintptrBase load address in process memory.
    sizeuint32Size of the mapped module in bytes.
    crypto_typestringIdentifies the cryptographic library. Value depends on platform and detection path (casing differs between memory scan and PE/dylib scan). Possible values: openssl | OpenSSL | boringssl | BoringSSL | libressl | LibreSSL | gnutls | GnuTLS | nss | NSS | mbedtls | mbedTLS | wolfssl | wolfSSL | apple_security (macOS: Security.framework / CommonCrypto / CoreCrypto / CryptoKit) | Schannel | BCrypt (CNG) | windows_bcrypt | NCrypt (CNG) | windows_ncrypt | Crypt32 (CAPI) | windows_crypt32 | windows_schannel | Botan | GenericCrypto/TLS (Windows memory fallback for unrecognized ssl/tls/crypto DLLs) | generic (Linux fallback) | Unknown (Windows memory: pattern matched but name unrecognized).
    detected_apis[]stringDetected cryptographic API symbols found in the library.
    version_detailsmap[string]stringAdditional version metadata as arbitrary key/value string pairs. Keys and values are library-specific (e.g., {"version": "3.0.2", "fips": "true"}). May be absent.
    pqc_statusstringPQC capability: "capable", "partial", "not_capable", "unknown".
    pqc_algorithms[]stringPQC algorithm names supported by this library (if pqc_status is capable/partial).
    activeboolAsset tracking: written only when false (tombstoned); absent when library is currently loaded.
    last_seenstringLast observation timestamp for tombstoned entries.
    Canonical KeystoreInfo (keystore_results[])

    Source Produced by -scanfilesystem. Format NDJSON reuses this shape by flattening selected fields and pairing them with ECS file metadata.

    FieldTypeDescription
    pathstringFilesystem path to the keystore file.
    typestringKeystore format (e.g., "jks", "pkcs12", "pem_bundle", "nss", "windows_cert_store").
    accessibleboolTrue when the scanner could open and read the keystore.
    requires_authboolTrue when keystore is password-protected.
    cert_countintNumber of certificates found in the keystore.
    ownerstringFile owner username.
    permissionsstringFile permission string.
    sizeint64File size in bytes.
    last_modifiedtimeLast modification timestamp.
    error_messagestringError when keystore could not be parsed.
    encryptionobjectKeystore encryption metadata (when accessible and password-protected).
    encryption.algorithmstringEncryption algorithm (e.g., "AES-256-CBC", "PBEWithSHAAndRC2").
    encryption.kdfstringKey derivation function (e.g., "PBKDF2", "PKCS12KDF").
    encryption.iterationsintKDF iteration count.
    encryption.macstringMAC algorithm used for integrity (e.g., "SHA256", "SHA1").
    encryption.vulnerableboolTrue when encryption scheme uses weak or deprecated parameters.
    encryption.reasonstringReason the encryption is considered vulnerable.
    encryption.iv_lengthintInitialization vector length in bytes.
    encryption.salt_lengthintSalt length in bytes.
    certificates[]KeystoreCertificateCertificates contained in this keystore. See KeystoreCertificate.

    KeystoreCertificate (certificates[])

    FieldTypeDescription
    aliasstringCertificate alias within the keystore (JKS/PKCS12).
    subjectstringSubject distinguished name string.
    issuerstringIssuer distinguished name string.
    serial_numberstringCertificate serial number.
    not_beforetimeCertificate validity start.
    not_aftertimeCertificate validity end.
    key_algorithmstringPublic key algorithm (e.g., "RSA", "EC").
    key_sizeintPublic key size in bits.
    signature_algorithmstringCertificate signature algorithm (e.g., "SHA256-RSA", "ECDSAWithSHA384").
    thumbprintstringSHA-1 thumbprint of the certificate.
    versionintX.509 version number (always 3 for modern certificates).
    is_caboolTrue when basic constraints mark this as a CA certificate.
    is_self_signedboolTrue when issuer equals subject.
    has_private_keyboolTrue when a matching private key is present in the keystore.
    key_usage[]stringKey usage extension values (e.g., "Digital Signature", "Key Encipherment"). Omitted when empty.
    ext_key_usage[]stringExtended key usage OID names (e.g., "TLS Web Server Authentication"). Omitted when empty.
    chain_lengthintNumber of certificates in the chain. Omitted when 0.
    chain_completeboolTrue when the full certificate chain was verified. Omitted when chain_length is 0.
    vulnerableboolTrue when a known CVE applies to this certificate's parameters.
    risk_levelstringRisk level: Low, Medium, High, Critical.
    risk_reasonstringReason for the assigned risk level.
    cve_list[]stringCVE identifiers applicable to this certificate.
    fixed_in_versionstringVersion in which the reported CVE is fixed. Omitted when absent.
    pqc_vulnerableboolTrue when algorithm is quantum-vulnerable.
    pqc_reasonstringReason this certificate is PQC-vulnerable.
    activeboolAsset tracking: written only when false (tombstoned); absent when certificate is currently observed.
    last_seentimeLast observation timestamp (tombstoned assets only).
    AppCentricReport (app_report) - populated by -cipherscanquick in local mode

    Source Produced by -cipherscanquick. Conditional Only present in local mode when application-centric aggregation runs. Format Several nested members here are later serialized into tychon.application NDJSON fields.

    FieldTypeDescription
    system_quantum_gradeobjectSystem-wide quantum grade summary (SystemQuantumGrade). Absent when no ports were graded.
    system_quantum_grade.scoreintWeighted average quantum readiness score across all applications (0-100).
    system_quantum_grade.gradestringSystem letter grade: A+, A, B, C, D, or F.
    system_quantum_grade.network_scoreintPort-count-weighted average of per-application scores before OS bonus is applied.
    system_quantum_grade.os_bonusintBonus points added for OS-level PQC support (e.g., PQC-capable kernel).
    system_quantum_grade.app_countintNumber of applications included in the grade.
    system_quantum_grade.graded_portsintTotal number of ports that contributed to the system score.
    system_quantum_grade.os_limitationboolTrue when OS-level constraints cap the system score below what applications achieve.
    system_quantum_grade.os_findings[]stringOS-level findings that caused score deductions or limitations. Omitted when empty.
    applications[]ApplicationSummaryAll application-centric crypto summaries found. See ApplicationSummary below.
    orphan_findingsobjectCrypto findings not associated with any running process.
    orphan_findings.filesystem_certificates[]CertificateDetailsCertificates and private keys discovered on the filesystem not claimed by any process. See CertificateDetails.
    orphan_findings.keystores[]KeystoreInfoKeystore files found on the filesystem not owned by any running process. See KeystoreInfo.

    The application-centric view is intentionally concise and PQC-focused. It summarizes the crypto posture for each app across listening ports, outbound connected destinations discovered by -scanconnected, in-memory crypto, and data-at-rest findings. Use the dedicated datasets elsewhere in this page for full raw certificate, keystore, memory, and per-port detail.

    ApplicationSummary (applications[])

    FieldTypeDescription
    pidint32Primary process PID (lowest PID when multiple processes share a path).
    namestringProcess or application name.
    pathstringFull executable path.
    app_rootstringInferred application root directory.
    file_versionstringPE file version (Windows).
    product_versionstringPE product version (Windows).
    product_namestringPE product name (Windows).
    company_namestringPE company name (Windows).
    sourcestringEntry origin: "process", "vpn_client", or "ipsec_tunnel".
    service_infoobjectWindows service metadata when this application is a registered service (Windows only; absent otherwise).
    service_info.service_namestringService short name.
    service_info.service_display_namestringService display name shown in the Services console.
    service_info.service_descriptionstringService description text.
    quantum_gradeobjectAggregate quantum grade for this application (AppQuantumGrade). Absent when no ports were scored.
    quantum_grade.scoreintComposite quantum readiness score for this application (0-100).
    quantum_grade.gradestringLetter grade: A+, A, B, C, D, or F.
    quantum_grade.port_countintNumber of listening ports that contributed to the score.
    quantum_grade.worst_port_scoreintScore of the weakest port (determines the application grade).
    quantum_grade.best_port_scoreintScore of the strongest port.
    quantum_grade.os_deductionsintScore deductions caused by OS-level findings.
    quantum_grade.os_findings[]stringOS-level findings that caused deductions. Omitted when empty.
    ports[]PortSummaryConcise listening-port crypto summaries for this application. See PortSummary below. The full PortResult data is available in results[].ports[]; this view flattens quick-scan fields to the top level and replaces the leaf certificate with a concise summary.
    port_countintCount of listening ports included in the application summary.
    crypto_libraries[]CryptoLibrarySummaryConcise list of crypto libraries in use, keeping library identity and PQC posture rather than repeating full raw library details.
    crypto_library_countintCount of crypto libraries associated with this application.
    in_memory_certificates[]CertificateCryptoSummaryConcise in-memory certificate findings for this application. Each entry keeps subject and issuer identity, subject/issuer organization hints, issuer country, self-signed status, validity dates, key, signature, PQC, and source path details rather than the full certificate object.
    in_memory_cert_countintCount of in-memory certificates associated with this application.
    private_keys[]PrivateKeySummaryConcise private key findings containing key type, size, curve, and whether the key is encrypted.
    private_key_countintCount of private keys associated with this application.
    keystores[]KeystoreSummaryConcise keystore findings containing path, type, certificate count, and encryption posture.
    keystore_countintCount of keystores associated with this application.
    encrypted_files[]EncryptedFileInfoEncrypted data-at-rest findings associated with this application.
    encrypted_file_countintCount of encrypted files associated with this application.
    connected_to[]ConnectedDestinationOutbound connections found when -scanconnected is used with -cipherscanquick. Each entry records the remote IP, remote port, and whether crypto was detected on that connection.
    connected_to[].remote_ipstringRemote IP address of the connection.
    connected_to[].portintRemote port number.
    connected_to[].has_cryptoboolTrue when a TLS or crypto library was observed handling this connection.
    connected_to_countintCount of outbound connected destinations included in this application summary.
    keychain_identities[]KeychainIdentitySummarymacOS Keychain certificate+key pairs accessible to this application via the Security framework. Each entry includes label, access group, key type/bits/curve, and a CertificateCryptoSummary with PQC assessment. Absent on non-macOS platforms.
    keychain_identities[].labelstringHuman-readable keychain item label (often the cert CN, e.g. "Microsoft.AAD", "GlobalProtect").
    keychain_identities[].access_groupstringApp access group for sandboxed items ("<TeamID>.<BundleID>"). Empty for legacy non-sandboxed items.
    keychain_identities[].key_typestringPrivate key algorithm: "RSA", "EC", or "ED25519". Sourced from SecKeyCopyAttributes.
    keychain_identities[].key_bitsintPrivate key size in bits (e.g. 2048 for RSA, 256 for P-256).
    keychain_identities[].curvestringEC curve name when key_type is "EC" (e.g. "P-256", "P-384", "P-521").
    keychain_identities[].certificateCertificateCryptoSummaryConcise X.509 cert view including subject, issuer, validity, key algorithm, PQC vulnerability, quantum risk, and migration priority.
    keychain_identities[].certificate.pqc_vulnerableboolTrue when the key algorithm (RSA/EC/Ed25519) is vulnerable to Shor's algorithm.
    keychain_identities[].certificate.pqc_readinessstring"vulnerable" / "transitional" based on key type and size.
    keychain_identities[].certificate.quantum_riskstring"high" / "medium" quantum risk level.
    keychain_identities[].certificate.migration_prioritystring"critical" / "high" / "medium" migration urgency.
    keychain_identities[].certificate.is_expiredboolTrue when the certificate's NotAfter date is in the past.
    keychain_identities[].certificate.is_weak_signatureboolTrue when the certificate uses a weak signature algorithm (e.g., SHA-1, MD5).
    keychain_identity_countintCount of Keychain identities accessible to this application (macOS only).

    PortSummary (ports[] — concise JSON view used in application-centric output)

    FieldTypeDescription
    ports[].portintTCP/UDP port number.
    ports[].protocol_detectedstringDetected protocol (for example "tls" or "ssh"). Omitted when empty.
    ports[].quantum_gradeobjectDetailed quantum grade for this port (PortQuantumGrade).
    ports[].quantum_grade.kex_scoreintKey exchange component score contribution.
    ports[].quantum_grade.cipher_scoreintCipher suite component score contribution.
    ports[].quantum_grade.cert_scoreintCertificate component score contribution.
    ports[].quantum_grade.protocol_scoreintProtocol version component score contribution.
    ports[].quantum_grade.sig_hash_scoreintSignature hash component score contribution.
    ports[].quantum_grade.findings[]stringHuman-readable findings that influenced the grade. Omitted when empty.
    ports[].preferred_protocolstringPreferred negotiated protocol from the quick cipher scan (for example "TLSv1.3").
    ports[].preferred_cipherstringPreferred negotiated cipher suite.
    ports[].preferred_key_exchangestringPreferred negotiated key exchange group.
    ports[].supported_protocol_countintCount of supported protocols observed by the quick cipher scan.
    ports[].supported_cipher_countintCount of supported cipher suites observed by the quick cipher scan.
    ports[].supported_key_exchange_countintCount of supported key exchange groups observed by the quick cipher scan.
    ports[].insecure_cipher_countintCount of supported cipher suites flagged as insecure.
    ports[].weak_cipher_countintCount of supported cipher suites flagged as weak.
    ports[].supported_protocols[]stringAll TLS protocol versions accepted by the server (e.g. ["TLSv1.3","TLSv1.2"]). Omitted when empty.
    ports[].supported_cipher_suites[]stringAll cipher suites accepted by the server. Omitted when empty.
    ports[].supported_key_exchanges[]stringAll key exchange groups accepted by the server. Omitted when empty.
    ports[].insecure_ciphers[]stringCipher suites flagged as high-risk or not NIST-approved. Omitted when empty.
    ports[].weak_ciphers[]stringCipher suites flagged as medium-risk (deprecated but not yet banned). Omitted when empty.
    ports[].certificateobjectConcise leaf certificate summary. Fields: subject_common_name, subject, subject_organization, issuer_common_name, issuer, issuer_country, issuer_organization, serial_number, not_before, not_after, is_self_signed, key_algorithm, key_size, signature_algorithm, pqc_vulnerable, pqc_readiness, quantum_risk, migration_priority, and source_file_path.
    ports[].ssh_statusstringSSH scan status when this port was identified as SSH. Omitted when not applicable.
    ports[].omb_assessment - OmbFields (omitempty; OMB M-23-02 inventory fields)
    ports[].omb_assessment.system_namestringCanonical system name for this application port inventory entry.
    ports[].omb_assessment.vulnerability_statusstringOMB vulnerability status string for this port (for example "Vulnerable", "Not Vulnerable", or "Partially Remediated").
    ports[].omb_assessment.module_namestringCrypto module name responsible for this port's cipher negotiation.
    ports[].omb_assessment.crqc_vuln_algosstringComma-separated list of algorithms on this port that are vulnerable to a cryptographically relevant quantum computer (CRQC).
    ports[].omb_assessment.pqc_algosstringComma-separated list of post-quantum cryptography algorithms in use on this port.
    ports[].omb_assessment.symmetric_algosstringComma-separated list of symmetric algorithms in use on this port.
    ports[].omb_assessment.software_package_namestringName of the software package serving this port. Omitted when empty.
    ports[].omb_assessment.software_package_versionstringVersion of the software package. Omitted when empty.
    ports[].omb_assessment.vendorstringVendor of the software package. Omitted when empty.
    ports[].omb_assessment.operating_systemstringOperating system identifier for the host. Omitted when empty.
    ports[].omb_assessment.additional_notesstringFree-text additional notes for this inventory entry. Omitted when empty.
    ports[].omb_assessment.kex_protocolsstringKey exchange protocols in use (for example "ECDHE" or "DHE"). Omitted when empty.
    ports[].omb_assessment.kex_ciphersuitesstringCipher suites negotiated for key exchange. Omitted when empty.
    ports[].omb_assessment.kex_primary_groupstringPrimary key exchange group (for example "X25519" or "P-256"). Omitted when empty.
    ports[].omb_assessment.other_protocolsstringOther protocols beyond TLS or SSH observed on this port. Omitted when empty.
    ports[].omb_assessment.other_protocols_paramsstringParameters for other protocols. Omitted when empty.
    ports[].omb_assessment.kem_algorithmsstringKey encapsulation mechanism algorithms in use. Omitted when empty.
    ports[].omb_assessment.kem_parametersstringKEM algorithm parameters. Omitted when empty.
    ports[].omb_assessment.dsa_algorithmsstringDigital signature algorithms in use. Omitted when empty.
    ports[].omb_assessment.dsa_parametersstringDSA algorithm parameters. Omitted when empty.
    ports[].omb_assessment.dsa_hash_algorithmsstringHash algorithms used with DSA. Omitted when empty.
    ports[].omb_assessment.block_ciphersstringBlock cipher algorithms in use. Omitted when empty.
    ports[].omb_assessment.block_cipher_key_lengthsstringBlock cipher key lengths (for example "128" or "256"). Omitted when empty.
    ports[].omb_assessment.block_cipher_modesstringBlock cipher modes of operation (for example "GCM" or "CBC"). Omitted when empty.
    ports[].omb_assessment.hash_algorithmsstringHash algorithms in use. Omitted when empty.
    ports[].omb_assessment.hash_algorithm_parametersstringHash algorithm parameters. Omitted when empty.
    ports[].omb_assessment.mac_algorithmsstringMAC algorithms in use. Omitted when empty.
    ports[].omb_assessment.mac_algorithm_parametersstringMAC algorithm parameters. Omitted when empty.
    ports[].omb_assessment.other_crypto_detailsstringOther cryptographic details not captured by the above fields. Omitted when empty.
    ports[].omb_assessment.certificationsstringApplicable certifications (for example "FIPS 140-3"). Omitted when empty.
    ports[].previous_cipher_state - PortCipherState (omitempty; only present when a cipher change was detected)
    ports[].previous_cipher_state.hoststringHostname or IP at the time of the last recorded cipher change.
    ports[].previous_cipher_state.portintPort number.
    ports[].previous_cipher_state.first_seentimeTimestamp when this port was first observed (RFC3339).
    ports[].previous_cipher_state.last_seentimeTimestamp when this port was most recently observed (RFC3339).
    ports[].previous_cipher_state.last_changedtimeTimestamp when the cipher configuration last changed (RFC3339). Omitted when no change has been detected.
    ports[].previous_cipher_state.preferred_protocolstringCurrent preferred TLS protocol at the time of the last change detection. Omitted when empty.
    ports[].previous_cipher_state.supported_protocols[]stringCurrent list of supported TLS protocols. Omitted when empty.
    ports[].previous_cipher_state.preferred_cipherstringCurrent preferred cipher suite. Omitted when empty.
    ports[].previous_cipher_state.supported_ciphers[]stringCurrent list of supported cipher suites. Omitted when empty.
    ports[].previous_cipher_state.preferred_key_exchangestringCurrent preferred key exchange group. Omitted when empty.
    ports[].previous_cipher_state.supported_key_exchanges[]stringCurrent list of supported key exchange groups. Omitted when empty.
    ports[].previous_cipher_state.previous_preferred_protocolstringPreferred protocol from before the most recent change. Omitted when empty for first discovery.
    ports[].previous_cipher_state.previous_supported_protocols[]stringSupported protocols from before the most recent change. Omitted when empty.
    ports[].previous_cipher_state.previous_preferred_cipherstringPreferred cipher from before the most recent change. Omitted when empty.
    ports[].previous_cipher_state.previous_supported_ciphers[]stringSupported ciphers from before the most recent change. Omitted when empty.
    ports[].previous_cipher_state.previous_preferred_key_exchangestringPreferred key exchange group from before the most recent change. Omitted when empty.
    ports[].previous_cipher_state.previous_supported_key_exchanges[]stringSupported key exchange groups from before the most recent change. Omitted when empty.
    QuantumReadinessAssessment (quantum_readiness)
    FieldTypeDescription
    assessment_idstringUnique identifier for this assessment instance (e.g., "qa-a1b2c3d4e5f6").
    timestamptimeAssessment timestamp (RFC3339).
    assessment_typestringAssessment scope: "local" or "remote".
    system_typestringDetected system category. Values: server, workstation, embedded, unknown.
    system_rolestringDetected role (e.g., "server", "workstation", "domain_controller", "ca_server").
    criticality_levelstringBusiness criticality. Values: critical, important, standard, low.
    fips_mode_enabledboolTrue when OS FIPS enforcement is active.
    overall_scoreintComposite quantum readiness score (0-100).
    max_possible_scoreintMaximum achievable score (always 100).
    readiness_statusstringStatus label. Values: Quantum Ready, Partially Ready, Update Required, Not Ready.
    status_colorstringHex color for dashboard rendering (e.g., "#22c55e", "#f97316", "#ef4444").
    ready_timelinestringEstimated readiness horizon (e.g., "Ready Now", "6-12 months", "12-24 months").
    recommendations[]stringOrdered list of prioritized recommendation strings.
    detailed_reportstringExtended narrative report text suitable for display.
    assessment_duration_msint64Milliseconds elapsed to complete the assessment (time.Duration.Milliseconds()). The struct field is a time.Duration but the JSON and NDJSON outputs both call .Milliseconds() before writing.
    hardware_score - HardwareAssessment
    hardware_scoreHardwareAssessmentHardware capability sub-assessment (CPU, RAM, TPM, Secure Boot).
    hardware_score.detailsobjectDetailed hardware inventory (CPU arch, instruction sets, RAM, TPM version, Secure Boot, NTLM level).
    hardware_score.cpu_scoreintCPU sub-score contribution.
    hardware_score.cpu_max_scoreintMaximum possible CPU sub-score.
    hardware_score.memory_scoreintMemory sub-score contribution.
    hardware_score.memory_max_scoreintMaximum possible memory sub-score.
    hardware_score.security_hw_scoreintSecurity hardware (TPM/HSM) sub-score contribution.
    hardware_score.security_hw_max_scoreintMaximum possible security hardware sub-score.
    hardware_score.total_scoreintSum of all hardware sub-scores.
    hardware_score.total_max_scoreintSum of all hardware max sub-scores.
    hardware_score.details.architecturestringCPU architecture (e.g., "x86_64", "arm64").
    hardware_score.details.instruction_sets[]stringSupported CPU instruction sets (e.g., ["AVX2", "AES-NI"]).
    hardware_score.details.coresintPhysical CPU core count.
    hardware_score.details.logical_coresintLogical CPU core count (includes hyperthreading).
    hardware_score.details.base_frequency_ghzfloat64Base CPU frequency in GHz.
    hardware_score.details.total_ram_gbfloat64Total installed RAM in gigabytes.
    hardware_score.details.available_ram_gbfloat64Available RAM in gigabytes at scan time.
    hardware_score.details.has_tpmboolTrusted Platform Module detected.
    hardware_score.details.tpm_versionstringTPM version string (e.g., "2.0"). Empty when no TPM.
    hardware_score.details.has_hsmboolHardware Security Module detected.
    hardware_score.details.has_secure_bootboolSecure Boot enabled.
    hardware_score.details.has_aes_niboolAES-NI instruction set present.
    hardware_score.details.has_avx2boolAVX2 instruction set present (accelerates PQC lattice operations).
    hardware_score.details.has_neonboolARM NEON SIMD present (ARM equivalent of AVX2).
    hardware_score.details.ntlm_lm_compat_levelintWindows LmCompatibilityLevel registry value (0–5). 0–3 = RC4/DES-based auth (vulnerable); 4–5 = NTLMv2 only (acceptable). Omitted on non-Windows.
    hardware_score.details.ntlm_protocolstringHuman-readable NTLM auth protocol in use, e.g. NTLMv2-only, LM+NTLMv1. Omitted on non-Windows.
    hardware_score.details.ntlm_pqc_vulnerablebooltrue when NTLM level ≤ 3 (allows RC4 or DES-based authentication). Omitted on non-Windows.
    hardware_score.details.secure_boot_firmwarestringFirmware type detected: UEFI, Legacy BIOS, or Unknown. Legacy BIOS systems cannot enable Secure Boot.
    hardware_score.details.pqc_benchmarkPQCBenchmarkSuiteconditional Present only when -hardware-benchmark flag is specified. Contains live ML-DSA and ML-KEM throughput measurements. See Hardware PQC Benchmark.
    hardware_score.details.pqc_benchmark.overall_passedboolTrue if all 15 algorithm/operation benchmarks met their minimum ops/sec threshold.
    hardware_score.details.pqc_benchmark.measurement_msintMeasurement window per operation in milliseconds (default 100).
    hardware_score.details.pqc_benchmark.timestamp_utctimeRFC 3339 UTC timestamp when benchmarks were run.
    hardware_score.details.pqc_benchmark.results[][]PQCAlgoBenchmarkPer-algorithm throughput results. Each entry has: algorithm, operation, ops_per_sec, latency_microsec, passed, threshold.
    operating_system_score - OSAssessment
    operating_system_scoreOSAssessmentOperating system readiness sub-assessment (version, crypto API, PQC framework).
    operating_system_score.detailsobjectDetailed OS inventory (version, build, kernel, crypto framework, PQC framework, SymCrypt presence).
    operating_system_score.os_version_scoreintOS version recency sub-score.
    operating_system_score.os_version_max_scoreintMaximum OS version sub-score.
    operating_system_score.crypto_api_scoreintCrypto API capability sub-score.
    operating_system_score.crypto_api_max_scoreintMaximum crypto API sub-score.
    operating_system_score.total_scoreintSum of OS sub-scores.
    operating_system_score.total_max_scoreintSum of OS max sub-scores.
    operating_system_score.details.familystringOS family (e.g., "debian", "windows", "rhel").
    operating_system_score.details.versionstringOS version string.
    operating_system_score.details.buildstringOS build number (Windows: e.g., "22631").
    operating_system_score.details.kernel_versionstringKernel version string.
    operating_system_score.details.native_pqc_supportboolOS natively supports PQC algorithms without add-on providers.
    operating_system_score.details.crypto_frameworkstringPrimary crypto framework (e.g., "CNG", "OpenSSL", "CommonCrypto").
    operating_system_score.details.pqc_frameworkstringPQC-capable framework if present (e.g., "SymCrypt", "liboqs").
    operating_system_score.details.symcrypt_presentboolMicrosoft SymCrypt detected (Windows PQC engine).
    operating_system_score.details.modern_crypto_apiboolModern crypto API available (CNG on Windows, OpenSSL 3.x on Linux/macOS).
    crypto_library_score - CryptoAssessment
    crypto_library_scoreCryptoAssessmentCryptographic library readiness sub-assessment (OpenSSL version, PQC provider, FIPS mode).
    crypto_library_score.detailsobjectDetailed crypto library inventory (OpenSSL path/version, OQS provider, system libraries, PQC-capable libraries).
    crypto_library_score.openssl_scoreintOpenSSL version/capability sub-score.
    crypto_library_score.openssl_max_scoreintMaximum OpenSSL sub-score.
    crypto_library_score.system_crypto_scoreintSystem crypto library sub-score.
    crypto_library_score.system_crypto_max_scoreintMaximum system crypto sub-score.
    crypto_library_score.total_scoreintSum of crypto library sub-scores.
    crypto_library_score.total_max_scoreintSum of crypto library max sub-scores.
    crypto_library_score.details.openssl_versionstringOpenSSL version string (e.g., "OpenSSL 3.3.1").
    crypto_library_score.details.openssl_pathstringAbsolute path to the OpenSSL binary used.
    crypto_library_score.details.pqc_supportboolOpenSSL supports PQC algorithms (oqs-provider loaded or built-in).
    crypto_library_score.details.oqs_providerboolliboqs OQS provider detected in OpenSSL.
    crypto_library_score.details.fips_modeboolOpenSSL FIPS module active.
    crypto_library_score.details.system_libraries[]stringAll crypto libraries found on the system.
    crypto_library_score.details.pqc_capable_libraries[]stringSubset of system_libraries that support PQC operations.
    crypto_library_score.details.legacy_libraries_presentboolOne or more legacy/deprecated crypto libraries found.
    network_score - NetworkAssessment
    network_scoreNetworkAssessmentNetwork readiness sub-assessment (bandwidth, TLS 1.3 capability, IPv6, WiFi security).
    network_score.detailsobjectDetailed network inventory (bandwidth, MTU, latency, TLS 1.3, WiFi protocol/cipher).
    network_score.bandwidth_scoreintEstimated bandwidth adequacy sub-score.
    network_score.bandwidth_max_scoreintMaximum bandwidth sub-score.
    network_score.protocol_scoreintProtocol capability sub-score (TLS 1.3, IPv6).
    network_score.protocol_max_scoreintMaximum protocol sub-score.
    network_score.total_scoreintSum of network sub-scores.
    network_score.total_max_scoreintSum of network max sub-scores.
    network_score.details.estimated_bandwidth_mbpsuint64Estimated available bandwidth in Mbps.
    network_score.details.mtuintNetwork interface MTU (PQC key exchanges produce larger handshakes).
    network_score.details.latency_msint64Estimated round-trip latency in milliseconds (time.Duration.Milliseconds()).
    network_score.details.tls13_capableboolTLS 1.3 capable (required for PQC key exchange groups).
    network_score.details.modern_cipher_supportboolModern AEAD cipher suites observed in use.
    network_score.details.ipv6_supportboolIPv6 available on at least one network interface.
    network_score.details.wifi_presentbooltrue when a wireless interface is detected.
    network_score.details.wifi_ssidstringSSID (network name) of the active WiFi connection, if determinable.
    network_score.details.wifi_protocolstringActive WiFi security protocol: WPA3-SAE, WPA2-PSK, WPA2-EAP, WPA, WEP, Open.
    network_score.details.wifi_cipherstringActive WiFi encryption cipher: AES-CCMP, TKIP, WEP40, None.
    network_score.details.wifi_key_mgmtstringKey management method: SAE (WPA3), WPA-PSK, WPA-EAP, OWE, None.
    network_score.details.wifi_pqc_vulnerablebooltrue when WiFi uses TKIP, WEP, or no encryption (broken/unencrypted).
    network_score.details.wifi_quantum_riskstringOne of low (WPA3-SAE), medium (WPA2-CCMP), critical (TKIP/WEP/Open).
    critical_issues - []Issue (array; each element has these fields)
    critical_issues[].severitystringIssue severity (e.g., "critical", "high", "medium").
    critical_issues[].componentstringAffected component name (e.g., "OpenSSL", "OS", "Hardware").
    critical_issues[].issuestringIssue summary string.
    critical_issues[].impactstringDescription of the security or operational impact.
    critical_issues[].resolutionstringRecommended remediation action.
    critical_issues[].blockingboolTrue when this issue prevents quantum readiness.
    upgrade_pathway - []UpgradeStep (array; each element has these fields)
    upgrade_pathway[]UpgradeStepOrdered remediation steps to achieve quantum readiness. Absent when no steps are needed.
    upgrade_pathway[].orderintExecution order (1-based, ascending).
    upgrade_pathway[].componentstringComponent to upgrade (e.g., "OpenSSL", "Operating System", "Hardware").
    upgrade_pathway[].actionstringAction verb (e.g., "Upgrade", "Replace", "Enable", "Install").
    upgrade_pathway[].descriptionstringFull description of the upgrade step.
    upgrade_pathway[].estimated_time_weeksintEstimated effort in calendar weeks.
    upgrade_pathway[].prioritystringPriority label (e.g., "critical", "high", "medium", "low").
    compliance_status - ComplianceAssessment
    compliance_statusComplianceAssessmentRegulatory compliance assessment (NIST PQC readiness, FIPS 140-3, Common Criteria).
    compliance_status.nist_readyboolMeets NIST PQC migration guidance.
    compliance_status.fips_readyboolFIPS 140-3 compliant configuration detected.
    compliance_status.common_criteriaboolCommon Criteria evaluated configuration detected.
    compliance_status.compliance_notes[]stringCompliance gap or confirmation notes.
    system_classification - SystemClassification
    system_classificationSystemClassificationSystem category, role, criticality, and detection reason.
    system_classification.typestringSystem category. Values: server, workstation, embedded, unknown.
    system_classification.rolestringDetected role string (e.g., "domain_controller", "ca_server", "workstation").
    system_classification.criticality_levelstringCriticality. Values: critical, important, standard, low.
    system_classification.detection_reasonstringHuman-readable explanation of how the classification was determined.
    cost_analysis - CostAnalysis (omitempty; absent when cost analysis was skipped)
    cost_analysisCostAnalysisRemediation cost estimate (labor hours, hardware, licensing). Absent when -labor-rate 0.
    cost_analysis.total_labor_hoursfloat64Total estimated labor hours across all remediation tasks.
    cost_analysis.total_labor_cost_usdfloat64Total labor cost in USD (labor_rate_used × total_labor_hours).
    cost_analysis.total_hardware_cost_usdfloat64Total hardware replacement cost in USD.
    cost_analysis.total_license_cost_usdfloat64Total software license cost in USD.
    cost_analysis.total_cost_usdfloat64Grand total remediation cost in USD (labor + hardware + license).
    cost_analysis.labor_rate_usedfloat64Hourly labor rate applied (from -labor-rate flag; default $150/hr).
    cost_analysis.by_os_category[]OsCostLinePer-OS-category cost breakdown. See sub-fields below.
    cost_analysis.by_os_category[].os_categorystringOS category display name (e.g., "Windows Server 2019", "RHEL 8").
    cost_analysis.by_os_category[].tierstringUpgrade tier. Values: LEGACY, CLASSICAL, TRANSITIONAL.
    cost_analysis.by_os_category[].upgrade_targetstringRecommended upgrade target OS (e.g., "Server 2025", "Windows 11").
    cost_analysis.by_os_category[].labor_hoursfloat64Estimated labor hours for this OS upgrade.
    cost_analysis.by_os_category[].labor_cost_usdfloat64Labor cost in USD for this OS upgrade.
    cost_analysis.by_os_category[].license_cost_usdfloat64License cost in USD for this OS upgrade.
    cost_analysis.by_os_category[].hardware_cost_usdfloat64Hardware replacement cost in USD for this OS category.
    cost_analysis.by_os_category[].total_cost_usdfloat64Total cost in USD for this OS category.
    cost_analysis.by_app_family[]AppCostLinePer-application-family cost breakdown. See sub-fields below.
    cost_analysis.by_app_family[].app_familystringApplication family name (e.g., "Java", "OpenSSL", "IIS").
    cost_analysis.by_app_family[].tierstringUpgrade tier. Values: LEGACY, CLASSICAL, TRANSITIONAL.
    cost_analysis.by_app_family[].instance_countintNumber of detected instances of this application family.
    cost_analysis.by_app_family[].labor_hoursfloat64Estimated labor hours for this application family upgrade.
    cost_analysis.by_app_family[].labor_cost_usdfloat64Labor cost in USD for this application family upgrade.
    cost_analysis.by_app_family[].total_cost_usdfloat64Total cost in USD for this application family upgrade.
    ConnectedQuickResult (connected_quick_results[])

    Produced by -scanconnected. One entry per active outbound network connection that is not from a browser process. Only connections where a successful TLS handshake can be confirmed via getDefaultCipherInfoQuick() have has_crypto=true; all other connections are still recorded with has_crypto=false. Browser processes (Chrome, Edge, Firefox, Brave, Opera, DuckDuckGo, IE, Chromium, Safari) are excluded from enumeration entirely.

    Struct note: The Go struct contains three additional fields � primary_protocol, primary_key_exchange, and signature_algorithm � that have omitempty tags and are never populated in the current code path. They will never appear in JSON output. They are documented here only so a reader examining the struct definition is not confused.
    JSON fieldTypeDescription
    source_process_namestringName of the process that owns the connection (e.g., "java", "nginx"). Omitted when the process name cannot be resolved. Conditional
    source_pidint32PID of the process that owns the connection. Omitted when PID cannot be resolved or is zero. Conditional
    remote_ipstringRemote IP address of the connection (always present).
    portintRemote port number of the connection (always present).
    has_cryptoboolTrue when a TLS handshake was successfully completed to the remote endpoint via getDefaultCipherInfoQuick(). False when the endpoint did not respond to TLS.

    Part 2 - Flat NDJSON Output

    Each line is an independent JSON object. Fields use dot notation. All events share the base fields, and many event-specific fields are flattened versions of the canonical JSON structures defined above.

    Base Fields - present in every NDJSON event
    FieldTypeDescription
    observer.software_versionstringScanner binary version.
    observer.idstringStable host identifier (from host_id).
    observer.hostnamestringSystem hostname.
    observer.domainstringDomain name.
    observer.current_userstringUsername running the scanner.
    observer.user_uidstringUser UID.
    observer.user_gidstringUser GID.
    observer.user_home_dirstringUser home directory.
    observer.ip_addresses[]stringAll host IP addresses.
    observer.os.namestringOS name (e.g., "Windows", "linux").
    observer.os.platformstringOS platform identifier.
    observer.os.familystringOS family (e.g., "debian", "windows").
    observer.os.versionstringOS version string.
    observer.os.kernelstringKernel version string.
    observer.os.buildstringOS build number (Windows only — e.g., "19045").
    observer.kernel_versionstringFull kernel version (Windows build).
    observer.platform_versionstringPlatform patch version.
    observer.virtualization_systemstringVirtualization system name.
    observer.virtualization_rolestringVirtualization role (guest/host).
    observer.cpu_vendor_idstringCPU vendor ID string.
    observer.cpu_model_namestringCPU model name.
    observer.cpu_coresint32Physical CPU cores.
    observer.cpu_logical_coresintLogical CPU cores.
    observer.total_ram_bytesuint64Total RAM in bytes.
    observer.ram_used_percentfloat64RAM utilization percentage.
    observer.system_uptime_secondsuint64System uptime in seconds.
    observer.openssl_version_usedstringOpenSSL version used by scanner.
    observer.openssl_path_usedstringOpenSSL binary path.
    observer.fips_mode_enabledboolOS FIPS enforcement active.
    observer.machine_serial_numberstringHardware serial number.
    observer.bios_serial_numberstringBIOS serial number.
    observer.organizationstringOrganization name.
    observer.bigfix_client_installedboolBigFix client present (only when true).
    observer.bigfix_client_idstringBigFix computer ID (when client is installed).
    observer.tychon_client_idstringTYCHON client ID.
    observer.is_vdi_environmentboolVDI environment detected (only when true).
    observer.vdi_identity_sourcestringVDI identity source.
    observer.output_schema_versionstringVersion of the flat NDJSON output schema.
    scan.typestringScan mode: local, remote, connected.
    scan.target_inputstringRaw -host value or "localhost".
    scan.timestamptimeScan start time (RFC3339Nano).
    scan.tags[]stringUser-supplied tags (omitted when empty).
    event.dataset = "quantum_assessment" — one event per host (OS + overall)

    Three flat datasets emitted: (1) quantum_assessment — main OS + overall event (this section); (2) quantum_assessment.app_group — one row per application family with cost fields; (3) quantum_assessment.critical_issue — one row per critical finding. App-family cost and critical issues are not embedded in this event — they are separate documents.

    event.kind=event � event.category=configuration � event.action=quantum_readiness_assessment � tychon.type=quantum_readiness

    FieldTypeDescription
    idstringAssessment ID (also written to _id).
    _idstringElasticsearch document ID. Copy of id for direct indexing.
    event.kindstringAlways event.
    quantum_readiness.assessment_idstringUnique assessment identifier.
    quantum_readiness.timestamptimeAssessment timestamp (RFC3339Nano).
    quantum_readiness.assessment_typestringAssessment type (local/remote).
    quantum_readiness.overall_scoreintOverall score 0-100.
    quantum_readiness.max_possible_scoreintMaximum possible score (100).
    quantum_readiness.readiness_statusstringReadiness status label.
    quantum_readiness.status_colorstringDashboard color for status.
    quantum_readiness.ready_timelinestringEstimated readiness timeline.
    quantum_readiness.fips_mode_enabledboolOS FIPS enforcement mode active at scan time.
    quantum_readiness.assessment_duration_msint64Assessment duration in milliseconds.
    quantum_readiness.cost_analysis — CostAnalysis (conditional; absent when cost analysis was skipped or -labor-rate 0)
    quantum_readiness.cost_analysis.total_labor_hoursfloat64Total estimated labor hours across all remediation tasks.
    quantum_readiness.cost_analysis.total_labor_cost_usdfloat64Total labor cost in USD (labor_rate_used × total_labor_hours).
    quantum_readiness.cost_analysis.total_hardware_cost_usdfloat64Total hardware replacement cost in USD.
    quantum_readiness.cost_analysis.total_license_cost_usdfloat64Total software license cost in USD.
    quantum_readiness.cost_analysis.total_cost_usdfloat64Grand total remediation cost in USD (labor + hardware + license).
    quantum_readiness.cost_analysis.labor_rate_usedfloat64Hourly labor rate applied (from -labor-rate flag; default $150/hr).
    quantum_readiness.cost_analysis.os_categorystringConditional OS category display name. Flattened directly (no index) since there is at most one OS entry per host (e.g. "Windows Server 2019").
    quantum_readiness.cost_analysis.os_tierstringOS upgrade tier: LEGACY, CLASSICAL, TRANSITIONAL.
    quantum_readiness.cost_analysis.os_upgrade_targetstringRecommended upgrade target OS.
    quantum_readiness.cost_analysis.os_labor_hoursfloat64Estimated labor hours for OS upgrade.
    quantum_readiness.cost_analysis.os_labor_cost_usdfloat64Labor cost in USD for OS upgrade.
    quantum_readiness.cost_analysis.os_license_cost_usdfloat64License cost in USD for OS upgrade.
    quantum_readiness.cost_analysis.os_hardware_cost_usdfloat64Hardware replacement cost in USD for OS upgrade.
    quantum_readiness.cost_analysis.os_total_cost_usdfloat64Total cost in USD for OS upgrade.
    ⓘ App-family cost breakdown is now emitted as separate quantum_assessment.app_group events — one per family. Fields: quantum_readiness.cost_analysis.app_family, .tier, .instance_count, .labor_hours, .labor_cost_usd, .total_cost_usd. Stable ID: SHA-256(quantum_assessment_app_group | hostname | appFamily | observerID).
    quantum_readiness.hardware.cpu_scoreintCPU sub-score.
    quantum_readiness.hardware.cpu_max_scoreintCPU max sub-score.
    quantum_readiness.hardware.memory_scoreintMemory sub-score.
    quantum_readiness.hardware.memory_max_scoreintMemory max sub-score.
    quantum_readiness.hardware.security_hw_scoreintSecurity hardware sub-score.
    quantum_readiness.hardware.security_hw_max_scoreintSecurity hardware max sub-score.
    quantum_readiness.hardware.total_scoreintHardware total score.
    quantum_readiness.hardware.max_scoreintHardware max score.
    quantum_readiness.hardware.architecturestringCPU architecture (e.g., "x86_64").
    quantum_readiness.hardware.instruction_setsstringDetected instruction sets (comma-joined).
    quantum_readiness.hardware.coresintPhysical core count.
    quantum_readiness.hardware.logical_coresintLogical core count.
    quantum_readiness.hardware.base_frequency_ghzfloat64CPU base frequency in GHz.
    quantum_readiness.hardware.total_ram_gbfloat64Total RAM in GB.
    quantum_readiness.hardware.available_ram_gbfloat64Available RAM in GB at scan time.
    quantum_readiness.hardware.has_aes_niboolCPU has AES-NI hardware acceleration.
    quantum_readiness.hardware.has_avx2boolCPU has AVX2 vector instructions.
    quantum_readiness.hardware.has_neonboolCPU has ARM NEON SIMD.
    quantum_readiness.hardware.has_tpmboolTrusted Platform Module detected.
    quantum_readiness.hardware.tpm_versionstringTPM version string (e.g., "2.0").
    quantum_readiness.hardware.has_hsmboolHardware Security Module detected.
    quantum_readiness.hardware.has_secure_bootboolSecure Boot enabled.
    quantum_readiness.hardware.pqc_benchmark.overall_passedboolconditional Present when -hardware-benchmark specified. True if all benchmark operations passed.
    quantum_readiness.hardware.pqc_benchmark.measurement_msintconditional Measurement window per operation in milliseconds.
    quantum_readiness.hardware.pqc_benchmark.timestamp_utcstringconditional RFC 3339 UTC timestamp of the benchmark run.
    quantum_readiness.hardware.pqc_benchmark.ml_dsa_44.keygen.ops_per_secfloat64conditional ML-DSA-44 key generation throughput (ops/sec). Threshold: 500.
    quantum_readiness.hardware.pqc_benchmark.ml_dsa_44.sign.ops_per_secfloat64conditional ML-DSA-44 sign throughput (ops/sec). Threshold: 500.
    quantum_readiness.hardware.pqc_benchmark.ml_dsa_44.verify.ops_per_secfloat64conditional ML-DSA-44 verify throughput (ops/sec). Threshold: 1000.
    quantum_readiness.hardware.pqc_benchmark.ml_dsa_65.*objectconditional ML-DSA-65 keygen/sign/verify ops_per_sec, latency_microsec, passed. Thresholds: 300/300/600.
    quantum_readiness.hardware.pqc_benchmark.ml_dsa_87.*objectconditional ML-DSA-87 keygen/sign/verify ops_per_sec, latency_microsec, passed. Thresholds: 200/200/400.
    quantum_readiness.hardware.pqc_benchmark.ml_kem_768.*objectconditional ML-KEM-768 keygen/encap/decap ops_per_sec, latency_microsec, passed. Threshold: 2000 each.
    quantum_readiness.hardware.pqc_benchmark.ml_kem_1024.*objectconditional ML-KEM-1024 keygen/encap/decap ops_per_sec, latency_microsec, passed. Threshold: 1000 each.
    quantum_readiness.operating_system.os_version_scoreintOS version sub-score.
    quantum_readiness.operating_system.os_version_max_scoreintOS version max sub-score.
    quantum_readiness.operating_system.crypto_api_scoreintCrypto API sub-score.
    quantum_readiness.operating_system.crypto_api_max_scoreintCrypto API max sub-score.
    quantum_readiness.operating_system.total_scoreintOS total score.
    quantum_readiness.operating_system.max_scoreintOS max score.
    quantum_readiness.operating_system.familystringOS family.
    quantum_readiness.operating_system.versionstringOS version.
    quantum_readiness.operating_system.kernel_versionstringKernel version.
    quantum_readiness.operating_system.buildstringOS build identifier.
    quantum_readiness.operating_system.native_pqc_supportboolOS natively supports PQC algorithms.
    quantum_readiness.operating_system.crypto_frameworkstringOS crypto framework name (e.g., "CNG", "OpenSSL").
    quantum_readiness.operating_system.pqc_frameworkstringPQC framework detected (e.g., "liboqs").
    quantum_readiness.operating_system.symcrypt_presentboolWindows SymCrypt library detected.
    quantum_readiness.operating_system.modern_crypto_apiboolModern crypto API (CNG/OpenSSL 3.x) detected.
    quantum_readiness.operating_system.fips_mode_enabledboolOS FIPS enforcement active.
    quantum_readiness.crypto_libraries.openssl_scoreintOpenSSL sub-score.
    quantum_readiness.crypto_libraries.openssl_max_scoreintOpenSSL max sub-score.
    quantum_readiness.crypto_libraries.system_crypto_scoreintSystem crypto sub-score.
    quantum_readiness.crypto_libraries.system_crypto_max_scoreintSystem crypto max sub-score.
    quantum_readiness.crypto_libraries.total_scoreintCrypto libraries total score.
    quantum_readiness.crypto_libraries.max_scoreintCrypto libraries max score.
    quantum_readiness.crypto_libraries.openssl_versionstringDetected OpenSSL version string.
    quantum_readiness.crypto_libraries.uses_opensslboolTrue when at least one running process has OpenSSL loaded in memory. Written only when true.
    quantum_readiness.crypto_libraries.openssl_pathstringPath to OpenSSL binary.
    quantum_readiness.crypto_libraries.pqc_supportboolOpenSSL PQC support detected.
    quantum_readiness.crypto_libraries.oqs_providerboolOQS provider loaded in OpenSSL.
    quantum_readiness.crypto_libraries.fips_modeboolOpenSSL FIPS mode active.
    quantum_readiness.crypto_libraries.system_librariesstringDetected system crypto libraries (comma-joined).
    quantum_readiness.crypto_libraries.pqc_capable_librariesstringPQC-capable libraries (comma-joined).
    quantum_readiness.crypto_libraries.legacy_libraries_presentboolLegacy crypto libraries detected.
    quantum_readiness.network.bandwidth_scoreintNetwork bandwidth sub-score.
    quantum_readiness.network.bandwidth_max_scoreintNetwork bandwidth max sub-score.
    quantum_readiness.network.protocol_scoreintNetwork protocol sub-score.
    quantum_readiness.network.protocol_max_scoreintNetwork protocol max sub-score.
    quantum_readiness.network.total_scoreintNetwork total score.
    quantum_readiness.network.max_scoreintNetwork max score.
    quantum_readiness.network.estimated_bandwidth_mbpsfloat64Estimated network bandwidth in Mbps.
    quantum_readiness.network.mtuintNetwork MTU in bytes.
    quantum_readiness.network.latency_msint64Network latency in milliseconds.
    quantum_readiness.network.tls13_capableboolTLS 1.3 capable.
    quantum_readiness.network.modern_cipher_supportboolModern cipher suites supported.
    quantum_readiness.network.ipv6_supportboolIPv6 connectivity detected.
    quantum_readiness.recommendationsstringRecommendations joined by " | ".
    quantum_readiness.upgrade_pathway.orderintFirst upgrade step order number.
    quantum_readiness.upgrade_pathway.componentstringFirst upgrade step component name.
    quantum_readiness.upgrade_pathway.actionstringFirst upgrade step action description.
    quantum_readiness.upgrade_pathway.descriptionstringFirst upgrade step full description.
    quantum_readiness.upgrade_pathway.estimated_time_weeksintEstimated weeks for first upgrade step.
    quantum_readiness.upgrade_pathway.prioritystringFirst upgrade step priority (e.g., "Critical").
    ⓘ Critical issues are now emitted as separate quantum_assessment.critical_issue events — one per issue. Fields: quantum_readiness.issue.severity, .component, .issue, .impact, .resolution, .blocking. Stable ID: SHA-256(quantum_assessment_critical_issue | hostname | component | severity | issue | observerID).
    quantum_readiness.compliance.nist_readyboolNIST compliance status.
    quantum_readiness.compliance.fips_readyboolFIPS compliance status.
    quantum_readiness.compliance.common_criteriaboolCommon Criteria compliance status.
    quantum_readiness.compliance.compliance_notesstringCompliance notes joined by " | ".
    quantum_readiness.system_classification.typestringSystem type classification.
    quantum_readiness.system_classification.rolestringSystem role (e.g., "server", "workstation").
    quantum_readiness.system_classification.criticality_levelstringBusiness criticality level.
    quantum_readiness.system_classification.detection_reasonstringReason for the classification.
    quantum_readiness.assessment_duration_msint64Assessment duration in milliseconds.
    quantum_readiness.detailed_reportstringExtended narrative assessment text.
    quantum_readiness.kerberos — Kerberos encryption type configuration (Windows only; absent on non-Windows platforms)
    quantum_readiness.kerberos.config_sourcestringWhere the configuration was read from. Values: group_policy (set via GPO — authoritative), lsa_direct (direct LSA registry key), os_default (key absent — OS default inferred from platform version).
    quantum_readiness.kerberos.is_explicitly_configuredboolTrue when the SupportedEncryptionTypes registry value is explicitly set. False when the OS default is inferred from an absent key.
    quantum_readiness.kerberos.supported_types[]stringList of Kerberos encryption types permitted on this host (e.g., ["AES256-CTS-HMAC-SHA1-96","AES128-CTS-HMAC-SHA1-96","RC4-HMAC"]).
    quantum_readiness.kerberos.has_rc4boolTrue when RC4-HMAC (bit 0x04) is permitted. RC4 for Kerberos is deprecated (RFC 8429) and exploitable via Kerberoasting attacks.
    quantum_readiness.kerberos.has_desboolTrue when DES-CBC-CRC (0x01) or DES-CBC-MD5 (0x02) is permitted. DES is broken and should never be enabled.
    quantum_readiness.kerberos.has_aes128boolTrue when AES128-CTS-HMAC-SHA1-96 (bit 0x08) is permitted.
    quantum_readiness.kerberos.has_aes256boolTrue when AES256-CTS-HMAC-SHA1-96 (bit 0x10) is permitted.
    quantum_readiness.kerberos.is_quantum_safeboolTrue only when the configuration permits exclusively AES (no RC4, no DES) and at least one AES variant is present. AES is Grover-resistant at 256-bit key length.
    quantum_readiness.kerberos.raw_bitmaskuint64Raw value of SupportedEncryptionTypes registry DWORD. Absent when config_source is os_default (no registry value exists to read). Omitted when zero.
    kerberos.* — same data as flat dot-notation fields in the NDJSON event (Windows only; absent when config_source is not_applicable)
    kerberos.config_sourcestringSame as quantum_readiness.kerberos.config_source.
    kerberos.is_explicitly_configuredboolSame as quantum_readiness.kerberos.is_explicitly_configured.
    kerberos.supported_typesstringEncryption type names joined with ", " (e.g., "AES256-CTS-HMAC-SHA1-96, RC4-HMAC").
    kerberos.has_rc4boolSame as quantum_readiness.kerberos.has_rc4.
    kerberos.has_desboolSame as quantum_readiness.kerberos.has_des.
    kerberos.has_aes128boolSame as quantum_readiness.kerberos.has_aes128.
    kerberos.has_aes256boolSame as quantum_readiness.kerberos.has_aes256.
    kerberos.is_quantum_safeboolSame as quantum_readiness.kerberos.is_quantum_safe.
    kerberos.raw_bitmaskuint64Raw SupportedEncryptionTypes DWORD value. Conditional Omitted when zero.
    Cross-dataset normalized fields — see tychon.crypto.*
    tychon.crypto.ntlm.protocolstringNTLM protocol string (e.g. NTLMv2). Present when NTLM is detected. Conditional
    tychon.crypto.ntlm.authstringSame as ntlm.protocol. Conditional
    tychon.crypto.ntlm.pqc_readinessstringvulnerable or transitional. Conditional
    tychon.crypto.ntlm.quantum_riskstringhigh or low. Conditional
    tychon.crypto.wifi.protocolstringWiFi security protocol (e.g. WPA3-SAE). Present when WiFi interface is detected. Conditional
    tychon.crypto.wifi.cipherstringWiFi pairwise cipher (e.g. AES-CCMP). Conditional
    tychon.crypto.wifi.key_exchangestringWiFi key management (e.g. SAE, WPA-PSK). Conditional
    tychon.crypto.wifi.pqc_readinessstringvulnerable or transitional. Conditional
    tychon.crypto.wifi.quantum_riskstringRisk level (e.g. low, medium, critical). Conditional
    event.dataset = "port_detail" — one event per (host, port); upserted on each scan

    event.kind=event � event.category=network � event.action=port_scan_result � tychon.type=cipher (or "connected" for -scanconnected)

    FieldTypeDescription
    idstringUniversal ID for this cipher observation (also written to _id).
    target_host.addressstringScanned host address.
    target_host.domainstringDomain name (when resolved).
    target_host.ipstringResolved IP address.
    target_host.ipv4stringIPv4 address (when applicable).
    target_host.ipv6stringIPv6 address (when applicable).
    server.addressstringServer hostname or IP.
    server.portintServer port number.
    server.ipstringServer IP (when scanned host is an IP).
    port.numberintPort number (legacy field, same as server.port).
    port.status_overallstringPort status string.
    port.protocol_detectedstringDetected application protocol.
    error.messagestringError message (when scan failed).
    process.pidint32PID of the process owning this port.
    process.namestringProcess name.
    process.command_linestringProcess command line.
    process.usernamestringProcess owner username.
    process.create_timetimeProcess creation time.
    process.executablestringProcess executable path.
    process.executable_directorystringDirectory containing the executable.
    process.executable_file.pathstringAbsolute path to the executable.
    process.executable_file.sizeint64File size in bytes.
    process.executable_file.sha1_hashstringSHA-1 hex digest.
    process.executable_file.sha256_hashstringSHA-256 hex digest.
    process.executable_file.md5_hashstringMD5 hex digest.
    process.executable_file.mod_timetimeLast modification time (RFC3339Nano).
    process.executable_file.create_timetimeFile creation time (RFC3339Nano).
    process.executable_file.access_timetimeLast access time (RFC3339Nano).
    process.executable_file.extensionstringFile extension (e.g., ".exe", "").
    process.executable_file.namestringFilename without directory.
    process.executable_file.attributesstringFile permission/attribute string.
    process.executable_file.file_versionstringWindows PE file version.
    process.executable_file.product_versionstringWindows PE product version.
    process.executable_file.product_namestringWindows PE product name.
    process.executable_file.company_namestringWindows PE company name.
    process.executable_file.ownerstringFile owner username.
    process.executable_file.groupstringFile group name.
    process.executable_file.errorstringError collecting file metadata.
    quantum_ready_kxboolKey exchange is quantum-safe.
    quantum_ready_cipherboolCipher provides post-Grover resistance.
    quantum_ready_certboolCertificate uses quantum-resistant signature.
    quantum_readyboolAll three quantum dimensions pass.
    x509.version_numberintCertificate version (from leaf cert).
    x509.serial_numberstringCertificate serial number.
    x509.signature_algorithmstringCertificate signature algorithm.
    x509.issuer.distinguished_namestringIssuer DN string.
    x509.issuer.common_namestringIssuer CN.
    x509.subject.distinguished_namestringSubject DN string.
    x509.subject.common_namestringSubject CN.
    x509.validity.not_beforetimeCertificate not-before date.
    x509.validity.not_aftertimeCertificate not-after date.
    x509.public_key_algorithmstringPublic key algorithm.
    x509.public_key_sizeintPublic key size in bits.
    x509.public_key_curvestringElliptic curve name.
    hash.sha1_certificatestringSHA-1 certificate fingerprint.
    hash.sha256_certificatestringSHA-256 certificate fingerprint.
    tychon.certificate_leaf_details - CertificateDetails struct, flattened
    tychon.certificate_leaf_details - CertificateDetails struct, flattened
    tychon.certificate_leaf_details.universal_idstringUniversal tracking ID across all outputs.
    tychon.certificate_leaf_details.source_idstringSource record ID.
    tychon.certificate_leaf_details.source_file_pathstringFilesystem path (filesystem certs only).
    tychon.certificate_leaf_details.versionintX.509 version (always 3 for modern certs).
    tychon.certificate_leaf_details.serial_numberstringCertificate serial number (hex).
    tychon.certificate_leaf_details.signature_algorithmstringSignature algorithm (e.g., "SHA256WithRSA").
    tychon.certificate_leaf_details.issuer.common_namestringIssuer common name.
    tychon.certificate_leaf_details.issuer.serial_numberstringIssuer serial number.
    tychon.certificate_leaf_details.issuer.countrystringIssuer country codes ([]string joined as comma-separated).
    tychon.certificate_leaf_details.issuer.organizationstringIssuer organization names (joined).
    tychon.certificate_leaf_details.issuer.organizational_unitstringIssuer OU values (joined).
    tychon.certificate_leaf_details.issuer.localitystringIssuer locality (joined).
    tychon.certificate_leaf_details.issuer.provincestringIssuer province/state (joined).
    tychon.certificate_leaf_details.issuer.street_addressstringIssuer street address (joined).
    tychon.certificate_leaf_details.issuer.postal_codestringIssuer postal code (joined).
    tychon.certificate_leaf_details.issuer.raw_stringstringIssuer DN as raw string.
    tychon.certificate_leaf_details.subject.common_namestringSubject common name.
    tychon.certificate_leaf_details.subject.serial_numberstringSubject serial number.
    tychon.certificate_leaf_details.subject.countrystringSubject country codes (joined).
    tychon.certificate_leaf_details.subject.organizationstringSubject organization (joined).
    tychon.certificate_leaf_details.subject.organizational_unitstringSubject OU (joined).
    tychon.certificate_leaf_details.subject.localitystringSubject locality (joined).
    tychon.certificate_leaf_details.subject.provincestringSubject province/state (joined).
    tychon.certificate_leaf_details.subject.street_addressstringSubject street address (joined).
    tychon.certificate_leaf_details.subject.postal_codestringSubject postal code (joined).
    tychon.certificate_leaf_details.subject.raw_stringstringSubject DN as raw string.
    tychon.certificate_leaf_details.validity.not_beforetimeCertificate valid-from timestamp (RFC3339Nano).
    tychon.certificate_leaf_details.validity.not_aftertimeCertificate expiry timestamp (RFC3339Nano).
    validity.duration_daysintTotal validity duration in days (not_after - not_before).
    tychon.certificate_leaf_details.subject_public_key_info.algorithmstringPublic key algorithm (e.g., "RSA", "ECDSA", "Ed25519").
    tychon.certificate_leaf_details.subject_public_key_info.bit_sizeintKey size in bits.
    tychon.certificate_leaf_details.subject_public_key_info.curvestringElliptic curve name (ECDSA keys only).
    tychon.certificate_leaf_details.subject_public_key_info.rsa_exponentint64RSA public exponent (RSA keys only).
    tychon.certificate_leaf_details.subject_public_key_info.rsa_modulus_hexstringRSA modulus as hex (RSA keys only).
    tychon.certificate_leaf_details.subject_public_key_info.raw_der_base64stringRaw DER-encoded public key as base64.
    tychon.certificate_leaf_details.subject_public_key_info.ecdsa_x_hexstringECDSA X coordinate as hex.
    tychon.certificate_leaf_details.subject_public_key_info.ecdsa_y_hexstringECDSA Y coordinate as hex.
    tychon.certificate_leaf_details.subject_public_key_info.eddsa_public_key_hexstringEdDSA public key as hex.
    tychon.certificate_leaf_details.signature_hexstringSignature bytes as hex.
    tychon.certificate_leaf_details.authority_key_idstringAuthority Key Identifier extension value.
    tychon.certificate_leaf_details.subject_key_idstringSubject Key Identifier extension value.
    tychon.certificate_leaf_details.key_usagestringKey usage bits ([]string joined with ", ").
    tychon.certificate_leaf_details.extended_key_usagestringExtended key usage OIDs/names (joined).
    tychon.certificate_leaf_details.unknown_extended_key_usage_oidsstringUnrecognized EKU OIDs (joined).
    tychon.certificate_leaf_details.basic_constraints.is_caboolTrue when certificate is a CA.
    tychon.certificate_leaf_details.basic_constraints.max_path_lenintMax path length for CA chains.
    tychon.certificate_leaf_details.basic_constraints.max_path_len_zeroboolTrue when max path length is explicitly 0.
    tychon.certificate_leaf_details.subject_alternative_names.dns_namesstringSAN DNS names (joined).
    tychon.certificate_leaf_details.subject_alternative_names.email_addressesstringSAN email addresses (joined).
    tychon.certificate_leaf_details.subject_alternative_names.ip_addressesstringSAN IP addresses (joined).
    tychon.certificate_leaf_details.subject_alternative_names.urisstringSAN URIs (joined).
    tychon.certificate_leaf_details.crl_distribution_pointsstringCRL distribution point URLs (joined).
    tychon.certificate_leaf_details.ocsp_serversstringOCSP responder URLs (joined).
    tychon.certificate_leaf_details.issuing_certificate_urlsstringIssuer certificate URLs (AIA extension, joined).
    tychon.certificate_leaf_details.policy_identifiersstringCertificate policy OIDs (joined).
    tychon.certificate_leaf_details.unhandled_critical_extensions_oidsstringUnhandled critical extension OIDs (joined).
    tychon.certificate_leaf_details.permitted_dns_domains_criticalboolName constraint critical flag.
    tychon.certificate_leaf_details.permitted_dns_domainsstringPermitted DNS name constraints (joined).
    tychon.certificate_leaf_details.excluded_dns_domainsstringExcluded DNS name constraints (joined).
    tychon.certificate_leaf_details.sha1_fingerprintstringSHA-1 fingerprint of the certificate.
    tychon.certificate_leaf_details.sha256_fingerprintstringSHA-256 fingerprint of the certificate.
    tychon.certificate_leaf_details.is_self_signedboolTrue when subject equals issuer.
    tychon.certificate_leaf_details.raw_pem_certificatestringPEM-encoded certificate text.
    tychon.certificate_leaf_details.parse_errorstringParse error message. Omitted on success.
    tychon.certificate_leaf_details.is_private_keyboolAlways false for certificates (true for private key records).
    tychon.certificate_leaf_details.pqc_vulnerableboolTrue when key algorithm is vulnerable to quantum attack.
    tychon.certificate_leaf_details.pqc_readinessstringPQC readiness assessment. Values: vulnerable, transitional, resistant.
    tychon.certificate_leaf_details.crypto_librarystringCrypto library that parsed this certificate.
    tychon.certificate_leaf_details.key_strength_assessmentstringKey strength. Values: weak, adequate, strong.
    tychon.certificate_leaf_details.quantum_riskstringQuantum risk level. Values: high, medium, low.
    tychon.certificate_leaf_details.recommended_actionstringRecommended remediation action.
    tychon.certificate_leaf_details.migration_prioritystringMigration priority. Values: critical, high, medium, low.
    tychon.certificate_leaf_details.encryption.algorithmstringEncryption algorithm for protected private keys (e.g., "AES-256-CBC").
    tychon.certificate_leaf_details.encryption.kdfstringKey derivation function (e.g., "PBKDF2", "PKCS12KDF").
    tychon.certificate_leaf_details.encryption.iterationsintKDF iteration count.
    tychon.certificate_leaf_details.encryption.macstringMAC algorithm (e.g., "SHA256").
    tychon.certificate_leaf_details.encryption.vulnerableboolTrue when encryption scheme is PQC-vulnerable.
    tychon.certificate_leaf_details.encryption.reasonstringReason the encryption is vulnerable.
    tychon.certificate_leaf_details.encryption.iv_lengthintInitialization vector length in bytes.
    tychon.certificate_leaf_details.encryption.salt_lengthintSalt length in bytes.
    certificate.chain.N - N-th chain certificate (0-indexed). Subject/issuer DistinguishedName fields are rewritten as flat strings at this level rather than nested objects.
    certificate.chain.N.subjectstringSubject DN as a single string.
    certificate.chain.N.subject_common_namestringSubject common name.
    certificate.chain.N.subject_countrystringSubject country (joined).
    certificate.chain.N.subject_organizationstringSubject organization (joined).
    certificate.chain.N.subject_organizational_unitstringSubject OU (joined).
    certificate.chain.N.subject_localitystringSubject locality (joined).
    certificate.chain.N.subject_provincestringSubject province (joined).
    certificate.chain.N.issuerstringIssuer DN as a single string.
    certificate.chain.N.issuer_common_namestringIssuer common name.
    certificate.chain.N.issuer_countrystringIssuer country (joined).
    certificate.chain.N.issuer_organizationstringIssuer organization (joined).
    certificate.chain.N.issuer_organizational_unitstringIssuer OU (joined).
    certificate.chain.N.issuer_localitystringIssuer locality (joined).
    certificate.chain.N.issuer_provincestringIssuer province (joined).
    certificate.chain.N.versionintX.509 version.
    certificate.chain.N.serial_numberstringCertificate serial number (hex).
    certificate.chain.N.signature_algorithmstringSignature algorithm.
    certificate.chain.N.sha1_fingerprintstringSHA-1 fingerprint.
    certificate.chain.N.sha256_fingerprintstringSHA-256 fingerprint.
    certificate.chain.N.is_self_signedboolTrue when subject equals issuer.
    certificate.chain.N.pqc_vulnerableboolTrue when key algorithm is quantum-vulnerable.
    certificate.chain.N.pqc_readinessstringPQC readiness. Values: vulnerable, transitional, resistant.
    certificate.chain.N.quantum_riskstringQuantum risk. Values: high, medium, low.
    certificate.chain.N.validity.not_beforetimeValid-from timestamp.
    certificate.chain.N.validity.not_aftertimeExpiry timestamp.
    validity.duration_daysintTotal validity duration in days (not_after - not_before).
    certificate.chain.N.subject_public_key_info.algorithmstringPublic key algorithm.
    certificate.chain.N.subject_public_key_info.bit_sizeintKey size in bits.
    certificate.chain.N.subject_public_key_info.curvestringElliptic curve (ECDSA only).
    certificate.chain.N.key_usagestringKey usage values (joined).
    certificate.chain.N.extended_key_usagestringExtended key usage values (joined).
    certificate.chain.N.basic_constraints.is_caboolTrue when this is a CA certificate.
    certificate.chain.N.subject_alternative_names.dns_namesstringSAN DNS names (joined).
    certificate.chain.N.subject_alternative_names.ip_addressesstringSAN IP addresses (joined).
    certificate.chain.N.authority_key_idstringAuthority Key Identifier.
    certificate.chain.N.subject_key_idstringSubject Key Identifier.
    certificate.chain.N.crl_distribution_pointsstringCRL URLs (joined).
    certificate.chain.N.ocsp_serversstringOCSP responder URLs (joined).
    ssh.statusstringSSH status (e.g., "connected", "failed"). Present when port is SSH.
    ssh.bannerstringSSH server version banner (e.g., "SSH-2.0-OpenSSH_9.6").
    ssh.host_key - SSHHostKeyInfo (omitted when no host key)
    ssh.host_key.typestringHost key type (e.g., "ecdsa-sha2-nistp256", "ssh-ed25519", "rsa-sha2-512").
    ssh.host_key.public_keystringBase64-encoded public key blob.
    ssh.host_key.fingerprint_sha256stringSHA-256 fingerprint (e.g., "SHA256:abc123...").
    ssh.host_key.bitsintHost key size in bits.
    ssh.algorithms - SSHEnhancedNegotiationInfo (omitted when unavailable)
    ssh.algorithms.server_offered_kexstringKEX algorithms offered by server ([]string joined with ", ").
    ssh.algorithms.server_offered_host_key_algosstringHost key algorithms offered by server (joined).
    ssh.algorithms.server_offered_ciphers_c2sstringClient-to-server ciphers offered by server (joined).
    ssh.algorithms.server_offered_ciphers_s2cstringServer-to-client ciphers offered by server (joined).
    ssh.algorithms.server_offered_macs_c2sstringClient-to-server MACs offered by server (joined).
    ssh.algorithms.server_offered_macs_s2cstringServer-to-client MACs offered by server (joined).
    ssh.algorithms.server_offered_compressionstringCompression methods offered by server (joined).
    ssh.algorithms.negotiated_kexstringNegotiated KEX algorithm.
    ssh.algorithms.negotiated_host_key_algostringNegotiated host key algorithm.
    ssh.algorithms.negotiated_cipher_c2sstringNegotiated client-to-server cipher.
    ssh.algorithms.negotiated_cipher_s2cstringNegotiated server-to-client cipher.
    ssh.algorithms.negotiated_mac_c2sstringNegotiated client-to-server MAC.
    ssh.algorithms.negotiated_mac_s2cstringNegotiated server-to-client MAC.
    ssh.algorithms.negotiated_compressionstringNegotiated compression method.
    ssh.algorithms.client_offered_kexstringKEX algorithms offered by the scanner client (joined).
    ssh.algorithms.client_offered_host_key_algosstringHost key algorithms offered by the scanner client (joined).
    ssh.algorithms.client_offered_ciphersstringCiphers offered by the scanner client (joined).
    ssh.algorithms.client_offered_macsstringMACs offered by the scanner client (joined).
    tls.server.cipherstringNegotiated cipher suite name.
    tls.server.protocol_versionstringNegotiated TLS protocol version.
    tls.server.negotiated_groupstringNegotiated key exchange group (when present).
    Cross-dataset normalized fields — see tychon.crypto.*
    tychon.crypto.protocolstringAlways TLS in port_detail events.
    tychon.crypto.protocol_versionstringTLS version stripped (e.g. 1.3, 1.2). Conditional
    tychon.crypto.key_exchangestringNegotiated key exchange group. Same source as tls.server.negotiated_group. Conditional
    tychon.crypto.cipherstringBulk cipher extracted from cipher suite name (e.g. AES-256-GCM). Conditional
    tychon.crypto.pqc_vulnerablebooltrue when the connection is vulnerable to a quantum computer. Conditional
    tychon.crypto.pqc_readinessstringready, transitional, vulnerable, or critical. Conditional
    tychon.crypto.quantum_riskstringnone, low, medium, high, or critical. Conditional
    Design change: port_detail is now one document per (host, port). The per-cipher-suite tychon.cipher_negotiation.* fields below are no longer emitted in flat NDJSON output. They are replaced by the tls.server.* summary fields above: tls.server.cipher (preferred), tls.server.supported_ciphers (comma-joined), tls.server.cipher_count, tls.server.supported_protocols, tls.server.supported_key_exchanges.
    tychon.cipher_negotiation - MainCipherNegotiationInfo (deprecated — see tls.server.* summary fields above)
    tychon.cipher_negotiation.universal_idstringUniversal tracking ID.
    tychon.cipher_negotiation.source_idstringSource record ID.
    tychon.cipher_negotiation.protocolstringTLS protocol version (e.g., "TLSv1.3").
    tychon.cipher_negotiation.cipher_suitestringCipher suite name.
    tychon.cipher_negotiation.key_length_bitsintKey length in bits.
    tychon.cipher_negotiation.negotiated_groupstringNegotiated key exchange group.
    tychon.cipher_negotiation.ephemeral_key_length_bitsintEphemeral key length in bits.
    tychon.cipher_negotiation.peer_signing_digeststringPeer signing digest algorithm.
    tychon.cipher_negotiation.alpn_protocolstringALPN protocol negotiated (e.g., "h2", "http/1.1").
    tychon.cipher_negotiation.session_idstringTLS session ID (hex).
    tychon.cipher_negotiation.session_ticket_lifetime_hint_secondsintSession ticket lifetime hint in seconds.
    tychon.cipher_negotiation.extended_master_secret_supportedboolExtended master secret extension supported.
    tychon.cipher_negotiation.tls13_early_data_supportedboolTLS 1.3 0-RTT early data supported.
    tychon.cipher_negotiation.renegotiation_forbiddenboolTLS renegotiation forbidden.
    tychon.cipher_negotiation.compression_methodstringTLS compression method (should be "null").
    tychon.cipher_negotiation.is_preferredboolTrue when this is the server's preferred cipher suite.
    tychon.cipher_negotiation.sourcestringProbe source. Values: anchor, swarm, swarm+intel.
    tychon.cipher_negotiation.probe_methodstringProbe method used. Values: openssl, utls_standard, utls_hrr.
    tychon.cipher_negotiation.intel - CipherIntelDefinition fields (from toMapWithContext) + KEX/Protocol/Connection fields (from enrichIntelMapWithKex)
    tychon.cipher_negotiation.intel.bit_operatorstringCipher bit operator string from intel DB.
    tychon.cipher_negotiation.intel.cipher_name_from_definitionstringCipher name as stored in the intel DB.
    tychon.cipher_negotiation.intel.openssl_name_from_definitionstringOpenSSL name for this cipher suite.
    tychon.cipher_negotiation.intel.security_categorystringSecurity category (e.g., "Recommended", "Acceptable", "Deprecated").
    tychon.cipher_negotiation.intel.nist_security_categorystringNIST security category label.
    tychon.cipher_negotiation.intel.overall_riskstringCipher overall risk. Values: Low, Medium, High, Critical.
    tychon.cipher_negotiation.intel.descriptionstringHuman-readable cipher suite description.
    tychon.cipher_negotiation.intel.recommendationsstringRemediation recommendations.
    tychon.cipher_negotiation.intel.vulnerabilitiesstringKnown vulnerabilities for this cipher suite.
    tychon.cipher_negotiation.intel.is_nist_approvedboolNIST-approved cipher suite.
    tychon.cipher_negotiation.intel.is_fips140_2_compliantboolFIPS 140-2 compliant cipher suite.
    tychon.cipher_negotiation.intel.is_fips140_3_compliantboolFIPS 140-3 compliant cipher suite.
    tychon.cipher_negotiation.intel.is_pci_dss_compliantboolPCI DSS v4.0 compliant cipher suite.
    tychon.cipher_negotiation.intel.is_cis_compliantboolCIS Benchmark compliant cipher suite.
    tychon.cipher_negotiation.intel.is_nist_800_131a_compliantboolNIST SP 800-131A rev2 compliant cipher suite.
    tychon.cipher_negotiation.intel.is_hipaa_compliantboolHIPAA guidance compliant cipher suite.
    tychon.cipher_negotiation.intel.is_cnsa_20_compliantboolCNSA 2.0 compliant symmetric cipher (symmetric dimension only; see connection fields for full assessment).
    is_cipher_quantum_resistantboolTrue for AES-256 and ChaCha20 (>=128-bit post-Grover resistance).
    is_cipher_quantum_resistantboolTrue for AES-256 and ChaCha20 (>=128-bit post-Grover resistance).
    cipher_quantum_resistance_bitsintEffective post-Grover bits: AES-256->256, AES-128->64, 3DES->56, broken->0.
    tychon.cipher_negotiation.intel.is_tls13_onlyboolTrue when cipher suite is exclusive to TLS 1.3.
    tychon.cipher_negotiation.intel.protocols_from_definitionstringProtocol versions this cipher suite is valid for.
    tychon.cipher_negotiation.intel.recommended_ianaboolIANA-recommended cipher suite.
    tychon.cipher_negotiation.intel.rfc_referencestringDefining RFC for this cipher suite.
    tychon.cipher_negotiation.intel.key_exchange_algorithmstringKey exchange algorithm component.
    tychon.cipher_negotiation.intel.authentication_algorithmstringAuthentication algorithm component.
    tychon.cipher_negotiation.intel.encryption_algorithm_from_definitionstringEncryption algorithm component.
    tychon.cipher_negotiation.intel.encryption_bits_from_definitionintEncryption key bits from intel definition.
    tychon.cipher_negotiation.intel.aead_macstringAEAD MAC algorithm component.
    tychon.cipher_negotiation.intel.dtls_okboolCipher suite usable with DTLS.
    tychon.cipher_negotiation.intel.tls_server_cipher_risk_scoreintProtocol-version risk score (added when protocol is known).
    tychon.cipher_negotiation.intel.tls_cipher_weightintCipher strength weight score (added when cipher name is known).
    tychon.cipher_negotiation.intel.kex_quantum_safeboolTrue when the key exchange is quantum-safe.
    tychon.cipher_negotiation.intel.kex_familystringKEX family. Values: pure_pqc, hybrid_pqc, ecdh, dh_ff, rsa_kex, null_anon, legacy_broken.
    tychon.cipher_negotiation.intel.kex_cnsa_20_levelstringKEX CNSA 2.0 level. Values: full, transition, classical_acceptable, none.
    tychon.cipher_negotiation.intel.kex_display_namestringHuman-readable KEX display name.
    tychon.cipher_negotiation.intel.kex_is_pqc_hybridboolTrue when KEX is a classical+PQC hybrid.
    tychon.cipher_negotiation.intel.kex_pqc_componentstringPQC component of hybrid KEX (e.g., "ML-KEM-768").
    tychon.cipher_negotiation.intel.kex_security_bits_pqcintPQC security bits of the KEX.
    tychon.cipher_negotiation.intel.kex_nist_standardstringNIST PQC standard (e.g., "FIPS-203").
    tychon.cipher_negotiation.intel.kex_overall_riskstringKEX overall risk. Values: Low, Medium, High, Critical.
    tychon.cipher_negotiation.intel.kex_fips140_2_compliantboolKEX uses FIPS 140-2 approved algorithms.
    tychon.cipher_negotiation.intel.kex_fips140_3_compliantboolKEX uses FIPS 140-3 approved algorithms.
    tychon.cipher_negotiation.intel.kex_pci_dss_compliantboolKEX meets PCI DSS requirements.
    tychon.cipher_negotiation.intel.kex_cis_compliantboolKEX meets CIS Benchmark requirements.
    tychon.cipher_negotiation.intel.kex_nist_800_131a_compliantboolKEX meets NIST SP 800-131A rev2 requirements.
    tychon.cipher_negotiation.intel.kex_hipaa_compliantboolKEX meets HIPAA guidance.
    tychon.cipher_negotiation.intel.protocol_pqc_capableboolTrue when the protocol supports PQC key exchange groups (TLS 1.3 only).
    tychon.cipher_negotiation.intel.protocol_cnsa_20_approvedboolProtocol is CNSA 2.0 approved (TLS 1.2/1.3 only).
    tychon.cipher_negotiation.intel.protocol_deprecatedboolProtocol is deprecated (TLS 1.0/1.1, SSLv2/3, DTLSv1.0, SSHv1).
    tychon.cipher_negotiation.intel.protocol_fips140_2_compliantboolProtocol meets FIPS 140-2 requirements.
    tychon.cipher_negotiation.intel.protocol_fips140_3_compliantboolProtocol meets FIPS 140-3 requirements.
    tychon.cipher_negotiation.intel.protocol_pci_dss_compliantboolProtocol meets PCI DSS requirements.
    tychon.cipher_negotiation.intel.protocol_cis_compliantboolProtocol meets CIS Benchmark requirements.
    tychon.cipher_negotiation.intel.protocol_nist_800_131a_compliantboolProtocol meets NIST SP 800-131A rev2 requirements.
    tychon.cipher_negotiation.intel.protocol_hipaa_compliantboolProtocol meets HIPAA guidance.
    tychon.cipher_negotiation.intel.connection_quantum_safeboolTrue when protocol + KEX + cipher are all quantum-safe (composite).
    tychon.cipher_negotiation.intel.connection_cnsa_20_levelstringConnection-level CNSA 2.0 compliance. Values: full, transition, partial, none.
    tychon.cipher_negotiation.intel.connection_security_scoreintComposite connection security score (0-100).
    tychon.cipher_negotiation.intel.connection_overall_riskstringConnection overall risk. Values: low, medium, high, critical.
    tychon.cipher_negotiation.intel.connection_findingsstringSemicolon-separated findings explaining the connection risk score.
    tychon.cipher_negotiation.intel.connection_fips140_2_compliantboolConnection meets FIPS 140-2 (all three dimensions pass).
    tychon.cipher_negotiation.intel.connection_fips140_3_compliantboolConnection meets FIPS 140-3 (all three dimensions pass).
    tychon.cipher_negotiation.intel.connection_pci_dss_compliantboolConnection meets PCI DSS (all three dimensions pass).
    tychon.cipher_negotiation.intel.connection_cis_compliantboolConnection meets CIS Benchmarks (all three dimensions pass).
    tychon.cipher_negotiation.intel.connection_nist_800_131a_compliantboolConnection meets NIST SP 800-131A rev2 (all three dimensions pass).
    tychon.cipher_negotiation.intel.connection_hipaa_compliantboolConnection meets HIPAA guidance (all three dimensions pass).
    Cross-dataset normalized fields — see tychon.crypto.*
    tychon.crypto.protocolstringAlways TLS.
    tychon.crypto.protocol_versionstringTLS version number (e.g. 1.3, 1.2). Conditional
    tychon.crypto.key_exchangestringNegotiated key exchange / group. Same source as tls.curve. Conditional
    tychon.crypto.cipherstringBulk cipher parsed from tls.cipher (e.g. AES-256-GCM). Conditional
    tychon.crypto.macstringMAC / AEAD tag algorithm. Same source as tls.mac. Conditional
    tychon.crypto.authstringServer authentication / signature digest (e.g. RSA-SHA256). Conditional
    tychon.crypto.pqc_readinessstringready, transitional, vulnerable, or critical. Derived from tychon.cipher.detail.is_quantum_ready and tychon.kex.overall_risk.
    tychon.crypto.quantum_riskstringnone, low, medium, high, or critical. Derived from tychon.kex.overall_risk.
    tychon.crypto.pqc_vulnerablebooltrue when the connection's key exchange or cipher is vulnerable to a cryptographically-relevant quantum computer. Derived from Intel map is_quantum_ready field.
    event.dataset = "tychon.cipher_quick" - one event per port with quick cipher scan

    event.category=network � event.type=info � tychon.type not set

    FieldTypeDescription
    server.addressstringScanned host address.
    server.portintPort number.
    server.ipstringResolved IP (when available).
    tychon.cipher_quick.supported_protocolsstringComma-separated list of supported TLS protocol versions.
    tychon.cipher_quick.supported_protocol_countintCount of supported protocol versions.
    tychon.cipher_quick.supported_cipher_suitesstringComma-separated list of all accepted cipher suites.
    tychon.cipher_quick.supported_cipher_countintCount of accepted cipher suites.
    tychon.cipher_quick.supported_key_exchangesstringComma-separated list of accepted key exchange groups.
    tychon.cipher_quick.supported_key_exchange_countintCount of accepted key exchange groups.
    tychon.cipher_quick.preferred_protocolstringServer's preferred TLS version.
    tychon.cipher_quick.preferred_cipherstringServer's preferred cipher suite.
    tychon.cipher_quick.preferred_key_exchangestringServer's preferred key exchange group.
    tychon.cipher_quick.insecure_ciphersstringComma-separated insecure cipher suites.
    tychon.cipher_quick.insecure_cipher_countintCount of insecure cipher suites.
    tychon.cipher_quick.weak_ciphersstringComma-separated weak (medium-risk) cipher suites.
    tychon.cipher_quick.weak_cipher_countintCount of weak cipher suites.
    tychon.cipher_quick.total_probesintTotal TLS handshakes attempted.
    tychon.cipher_quick.duration_msint64Duration of the quick scan in milliseconds.
    event.dataset = "certificate" or "private_key" - one per filesystem cert/key

    Source Produced by -scanfilesystem. Format This is mostly CertificateDetails flattened into certificate.* fields, with a few explicit convenience fields added.

    event.kind=event � event.category=file � event.action=filesystem_certificate_discovered (or private_key_discovered) � tychon.type=filesystem

    FieldTypeDescription
    idstringUniversal ID (also _id).
    certificate.universal_idstringStable unique ID for deduplication across outputs.
    certificate.source_idstringSource-specific unique identifier.
    certificate.source_file_pathstringFilesystem path where this certificate was found.
    certificate.versionintX.509 certificate version (2 = v3).
    certificate.serial_numberstringHex-encoded certificate serial number.
    certificate.signature_algorithmstringCertificate signature algorithm (e.g., "SHA256-RSA").
    certificate.subjectstringSubject DN string.
    certificate.subject_common_namestringSubject common name.
    certificate.subject_countrystringSubject country codes ([]string joined with ", " by flattenObjectToMap).
    certificate.subject_organizationstringSubject organization names (joined).
    certificate.subject_organizational_unitstringSubject OU values (joined).
    certificate.subject_localitystringSubject locality values (joined).
    certificate.subject_provincestringSubject province/state values (joined).
    certificate.issuerstringIssuer DN string.
    certificate.issuer_common_namestringIssuer common name.
    certificate.issuer_countrystringIssuer country codes (joined).
    certificate.issuer_organizationstringIssuer organization names (joined).
    certificate.issuer_organizational_unitstringIssuer OU values (joined).
    certificate.issuer_localitystringIssuer locality values (joined).
    certificate.issuer_provincestringIssuer province/state values (joined).
    certificate.not_beforetimeValidity start (RFC3339Nano) - explicit field written in addition to validity.not_before.
    certificate.validity.not_beforetimeValid-from timestamp (RFC3339Nano) - from nested validity object via flattenObjectToMap.
    certificate.validity.not_aftertimeExpiry timestamp (RFC3339Nano).
    validity.duration_daysintTotal validity duration in days (not_after - not_before).
    certificate.not_beforetimeValidity start (RFC3339Nano) - explicit field written in addition to validity.not_before.
    certificate.not_aftertimeValidity end (RFC3339Nano) - explicit field written in addition to validity.not_after.
    certificate.subject_public_key_info.algorithmstringPublic key algorithm (e.g., "RSA", "EC", "Ed25519").
    certificate.subject_public_key_info.bit_sizeintKey size in bits.
    certificate.subject_public_key_info.curvestringElliptic curve name (ECDSA keys).
    certificate.subject_public_key_info.rsa_exponentint64RSA public exponent (RSA keys).
    certificate.subject_public_key_info.rsa_modulus_hexstringRSA modulus as hex (RSA keys).
    certificate.subject_public_key_info.raw_der_base64stringRaw DER-encoded public key as base64.
    certificate.subject_public_key_info.ecdsa_x_hexstringECDSA X coordinate as hex.
    certificate.subject_public_key_info.ecdsa_y_hexstringECDSA Y coordinate as hex.
    certificate.subject_public_key_info.eddsa_public_key_hexstringEdDSA public key as hex.
    certificate.signature_hexstringRaw signature bytes as hex.
    certificate.authority_key_idstringAuthority Key Identifier extension value.
    certificate.subject_key_idstringSubject Key Identifier extension value.
    certificate.key_usagestringKey usage bits ([]string joined with ", ", e.g., "Digital Signature, Key Encipherment").
    certificate.extended_key_usagestringExtended key usage names (joined with ", ").
    certificate.unknown_extended_key_usage_oidsstringUnrecognized EKU OIDs as dotted strings (joined).
    certificate.basic_constraints.is_caboolTrue when certificate is a Certificate Authority.
    certificate.basic_constraints.max_path_lenintMaximum CA chain path length.
    certificate.basic_constraints.max_path_len_zeroboolTrue when max path length is explicitly 0.
    certificate.subject_alternative_names.dns_namesstringSAN DNS names (joined).
    certificate.subject_alternative_names.email_addressesstringSAN email addresses (joined).
    certificate.subject_alternative_names.ip_addressesstringSAN IP addresses (joined).
    certificate.subject_alternative_names.urisstringSAN URIs (joined).
    certificate.crl_distribution_pointsstringCRL distribution point URLs (joined).
    certificate.ocsp_serversstringOCSP responder URLs (joined).
    certificate.issuing_certificate_urlsstringAIA issuing certificate URLs (joined).
    certificate.policy_identifiersstringCertificate policy OIDs (joined).
    certificate.unhandled_critical_extensions_oidsstringUnhandled critical extension OIDs (joined).
    certificate.permitted_dns_domains_criticalboolName constraints extension marked critical.
    certificate.permitted_dns_domainsstringPermitted DNS name constraints (joined).
    certificate.excluded_dns_domainsstringExcluded DNS name constraints (joined).
    certificate.sha1_fingerprintstringSHA-1 fingerprint of the DER-encoded certificate.
    certificate.sha256_fingerprintstringSHA-256 fingerprint of the DER-encoded certificate.
    certificate.is_self_signedboolTrue when issuer equals subject.
    certificate.raw_pem_certificatestringPEM-encoded certificate.
    certificate.parse_errorstringParse error message. Omitted on success.
    certificate.activeboolAsset tracking: written only when false (tombstoned asset). Absent when the asset is currently active.
    certificate.last_seenstringRFC3339 timestamp of last observation. Present only for tombstoned assets.
    certificate.is_private_keyboolTrue when this is a private key entry. For private_key events this is always true.
    certificate.pqc_vulnerableboolTrue when key algorithm is quantum-vulnerable.
    certificate.pqc_readinessstringPQC readiness: vulnerable, transitional, resistant.
    certificate.crypto_librarystringCrypto library that issued this certificate.
    certificate.key_strength_assessmentstringKey strength: weak, adequate, strong.
    certificate.quantum_riskstringQuantum risk level: high, medium, low.
    certificate.recommended_actionstringRecommended remediation action.
    certificate.migration_prioritystringMigration priority: critical, high, medium, low.
    certificate.encryption.algorithmstringEncryption algorithm for password-protected private keys (e.g., "AES-256-CBC").
    certificate.encryption.kdfstringKey derivation function (e.g., "PBKDF2").
    certificate.encryption.iterationsintKDF iteration count.
    certificate.encryption.macstringMAC algorithm.
    certificate.encryption.vulnerableboolTrue when encryption scheme is weak.
    certificate.encryption.reasonstringReason the encryption is considered vulnerable.
    certificate.encryption.iv_lengthintIV length in bytes.
    certificate.encryption.salt_lengthintSalt length in bytes.
    file.pathstringAbsolute path to the certificate or key file.
    file.namestringFilename.
    file.extensionstringFile extension (e.g., ".pem", ".crt").
    file.sizeint64File size in bytes.
    file.mtimetimeFile modification time.
    file.owner.namestringFile owner username.
    file.group.namestringFile group name.
    file.permissionsstringFile permission string.
    x509.subject.common_namestringSubject CN.
    x509.issuer.common_namestringIssuer CN.
    x509.serial_numberstringCertificate serial number.
    x509.is_validboolTrue when current time is within the validity period.
    x509.subject.distinguished_namestringFull subject DN string.
    x509.public_key_sizeintPublic key size in bits.
    hash.sha256_certificatestringSHA-256 fingerprint.
    crypto.key_algorithmstringPublic key algorithm.
    crypto.key_sizeintKey size in bits.
    crypto.signature_algorithmstringCertificate signature algorithm.
    pqc.vulnerableboolTrue when quantum-vulnerable.
    pqc.readinessstringPQC readiness: vulnerable, transitional, resistant.
    pqc.key_strengthstringKey strength: weak, adequate, strong.
    pqc.quantum_riskstringQuantum risk level: high, medium, low.
    pqc.recommended_actionstringRecommended remediation action.
    pqc.migration_prioritystringMigration priority: critical, high, medium, low.
    pqc.crypto_librarystringCrypto library that issued this cert.
    event.dataset = "memory_scan" - one per native crypto library in memory

    event.kind=event � event.category=process � event.action=crypto_library_in_memory � tychon.type=library

    FieldTypeDescription
    idstringUniversal ID for this library observation (also _id).
    event.kindstringAlways event.
    process.piduint32PID of the process that loaded this library.
    process.namestringProcess name.
    process.executablestringProcess executable path.
    process.executable_directorystringDirectory of the process executable.
    library.universal_idstringLibrary universal ID.
    library.namestringLibrary filename.
    library.pathstringFull library path.
    library.file_versionstringPE file version (Windows).
    library.product_versionstringPE product version (Windows).
    library.company_namestringPE company name (Windows).
    library.product_namestringPE product name (Windows).
    library.descriptionstringPE file description (Windows).
    library.copyrightstringPE copyright string (Windows).
    library.piduint32Owning process PID.
    library.process_namestringOwning process name.
    library.base_addruintptrBase load address in process virtual memory.
    library.sizeuint32Mapped module size in bytes.
    library.crypto_typestringIdentifies the cryptographic library. Value depends on platform and detection path (casing differs between memory scan and PE/dylib scan). Possible values: openssl | OpenSSL | boringssl | BoringSSL | libressl | LibreSSL | gnutls | GnuTLS | nss | NSS | mbedtls | mbedTLS | wolfssl | wolfSSL | apple_security (macOS: Security.framework / CommonCrypto / CoreCrypto / CryptoKit) | Schannel | BCrypt (CNG) | windows_bcrypt | NCrypt (CNG) | windows_ncrypt | Crypt32 (CAPI) | windows_crypt32 | windows_schannel | Botan | GenericCrypto/TLS (Windows memory fallback for unrecognized ssl/tls/crypto DLLs) | generic (Linux fallback) | Unknown (Windows memory: pattern matched but name unrecognized).
    library.detected_apisstringDetected API symbols (comma-joined).
    library.pqc_statusstringPQC capability: capable, partial, not_capable, unknown.
    library.pqc_algorithmsstringPQC algorithms supported (comma-joined).
    tychon.library.uses_opensslboolTrue when this process has OpenSSL loaded in memory. Written only when true.
    tychon.library.openssl_versionstringOpenSSL version string (PE file version on Windows; product version on macOS/Linux). Written only when present.
    tychon.library.uses_libresslboolTrue when this process has LibreSSL loaded in memory. Written only when true.
    tychon.library.libressl_versionstringLibreSSL version string. Written only when present.
    tychon.library.uses_apple_securityboolTrue when this process has Apple Security framework (Security.framework / CommonCrypto / CryptoKit) loaded. macOS only. Written only when true.
    library.activeboolAsset tracking: written only when false (tombstoned); absent when library is currently observed.
    library.last_seenstringLast observation timestamp (tombstoned assets only).
    vulnerability.is_vulnerableboolTrue when a known CVE applies to this library version.
    vulnerability.risk_levelstringVulnerability risk level: Low, Medium, High, Critical.
    vulnerability.risk_reasonstringReason for the risk assessment.
    vulnerability.cve_list[]stringApplicable CVE identifiers (when vulnerable).
    vulnerability.fixed_in_versionstringVersion that fixes the vulnerability.
    vulnerability.assessed_attimeTimestamp when vulnerability assessment was performed.
    event.dataset = "java_crypto" - one per Java crypto provider in memory

    event.kind=event � event.category=process � event.action=crypto_library_in_memory � tychon.type=library

    FieldTypeDescription
    process.pidintPID of the Java process.
    process.namestringProcess name (e.g., "java").
    library.library_namestringJava crypto library name (e.g., "Bouncy Castle", "Conscrypt").
    library.jar_pathstringAbsolute path to the JAR file.
    library.versionstringLibrary version string.
    library.process_idint32PID of the Java process that loaded this library.
    library.process_namestringProcess name of the Java process.
    library.java_vendorstringJVM vendor string (e.g., "Oracle Corporation"). Omitted when empty.
    library.java_versionstringJVM version string (e.g., "17.0.8+7"). Omitted when empty.
    library.crypto_featuresstringCryptographic capabilities of this library ([]string joined with ", ", e.g., "TLS, PKI, Post-Quantum Crypto"). Omitted when empty.
    library.detection_timetimeTimestamp when this library was detected (RFC3339Nano).
    library.activeboolAsset tracking: written only when false (tombstoned); absent when Java library is currently observed.
    library.last_seenstringLast observation timestamp (tombstoned assets only).
    java.vendorstringJVM vendor (e.g., "Oracle Corporation", "Eclipse Adoptium"). Duplicates library.java_vendor for ECS compatibility.
    java.versionstringJVM version string. Duplicates library.java_version for ECS compatibility.
    event.dataset = "keystore_certificate" - one per certificate per keystore

    Source Produced by -scanfilesystem. Format Combines flattened KeystoreInfo context with flattened certificate fields for each certificate discovered inside the keystore.

    event.kind=event � event.category=file � event.action=keystore_certificate_discovered � tychon.type=keystore

    FieldTypeDescription
    event.kindstringAlways event.
    keystore.typestringKeystore format (jks, pkcs12, pem_bundle, nss, windows_cert_store).
    keystore.accessibleboolKeystore was readable.
    keystore.requires_authboolPassword protection required.
    keystore.cert_countintTotal certificate count in keystore.
    keystore.ownerstringFile owner username.
    keystore.permissionsstringFile permissions string.
    keystore.error_messagestringParse error message (when applicable).
    keystore.encryption.algorithmstringKeystore encryption algorithm.
    keystore.encryption.kdfstringKey derivation function.
    keystore.encryption.iterationsintKDF iteration count.
    keystore.encryption.macstringMAC algorithm used.
    keystore.encryption.vulnerableboolTrue when encryption parameters are known weak.
    keystore.encryption.reasonstringReason encryption is considered vulnerable.
    keystore.encryption.iv_lengthintIV length in bytes.
    keystore.encryption.salt_lengthintSalt length in bytes.
    file.pathstringKeystore file path (ECS). This is where the keystore filesystem path is written - keystore.* does not include a path field.
    file.namestringKeystore filename (basename only).
    file.extensionstringKeystore file extension (e.g., "jks", "p12", "pem").
    file.sizeint64Keystore file size in bytes.
    file.mtimetimeKeystore file modification time.
    tls.certificate.subjectstringSubject distinguished name.
    tls.certificate.issuerstringIssuer distinguished name.
    tls.certificate.serial_numberstringCertificate serial number (hex string).
    certificate.not_beforetimeValidity start (RFC3339Nano) - explicit field written in addition to validity.not_before.
    certificate.not_aftertimeValidity end (RFC3339Nano) - explicit field written in addition to validity.not_after.
    tls.certificate.versionintX.509 version number (always 3 for modern certificates).
    tls.certificate.aliasstringKeystore alias for this certificate. Omitted when blank.
    tls.certificate.is_caboolTrue when certificate is a CA certificate (BasicConstraints.IsCA).
    tls.certificate.is_self_signedboolTrue when issuer DN equals subject DN.
    tls.certificate.has_private_keyboolTrue when the keystore contains a private key paired with this certificate.
    tls.certificate.key_usage[]stringKey usage extension values (e.g., "Digital Signature", "Key Encipherment"). Omitted when empty.
    tls.certificate.extended_key_usage[]stringExtended key usage OID names (e.g., "TLS Web Server Authentication"). Omitted when empty.
    tls.certificate.chain_lengthintNumber of certificates in the chain. Omitted when 0.
    tls.certificate.chain_completeboolTrue when the full chain up to a trust anchor is present. Omitted when chain_length is 0.
    crypto.key_algorithmstringPublic key algorithm (e.g., "RSA", "EC", "Ed25519").
    crypto.key_sizeintKey size in bits.
    crypto.signature_algorithmstringSignature algorithm (e.g., "SHA256WithRSA", "ECDSAWithSHA384").
    crypto.fingerprint_sha1stringSHA-1 thumbprint of the certificate (hex string).
    tls.server.hash.sha1stringSHA-1 fingerprint of the certificate in ECS TLS namespace (hex string). Written alongside crypto.fingerprint_sha1.
    vulnerability.is_vulnerableboolTrue when a known CVE applies to this certificate or key. Written only when true or risk_level is set.
    vulnerability.risk_levelstringRisk level: "critical", "high", "medium", or "low".
    vulnerability.risk_reasonstringHuman-readable reason for the risk classification. Omitted when blank.
    vulnerability.cve_list[]stringApplicable CVE identifiers. Omitted when empty.
    vulnerability.fixed_in_versionstringVersion in which the vulnerability is fixed. Omitted when blank.
    pqc.vulnerableboolTrue when the key algorithm is vulnerable to a cryptographically-relevant quantum computer. Written only when true or pqc_reason is set.
    pqc.reasonstringPQC vulnerability reason (e.g., "RSA-2048 broken by Shor's algorithm"). Omitted when blank.
    activeboolAsset tracking: written only when false (tombstoned); absent when certificate is currently observed in the keystore.
    last_seentimeLast observation timestamp (tombstoned assets only).
    event.dataset = "keystore" - keystore summary (one per keystore file)

    event.kind=event � event.category=file � event.action=keystore_discovered � tychon.type=keystore

    FieldTypeDescription
    event.kindstringAlways event.
    keystore.typestringKeystore format (jks, pkcs12, pem_bundle, nss, windows_cert_store).
    keystore.accessibleboolTrue when the scanner could open and read the keystore.
    keystore.requires_authboolTrue when keystore is password-protected.
    keystore.cert_countintNumber of certificates in the keystore.
    keystore.ownerstringFile owner username.
    keystore.permissionsstringFile permission string.
    keystore.sizeint64File size in bytes.
    keystore.last_modifiedtimeLast modification timestamp (RFC3339Nano).
    keystore.error_messagestringError when keystore could not be parsed.
    keystore.encryption.algorithmstringEncryption algorithm.
    keystore.encryption.kdfstringKey derivation function.
    keystore.encryption.iterationsintKDF iteration count.
    keystore.encryption.macstringMAC algorithm.
    keystore.encryption.vulnerableboolTrue when encryption parameters are known weak.
    keystore.encryption.reasonstringReason encryption is considered vulnerable.
    keystore.encryption.iv_lengthintIV length in bytes.
    keystore.encryption.salt_lengthintSalt length in bytes.
    file.pathstringKeystore file path (ECS). This is where the keystore filesystem path is written - keystore.* does not include a path field.
    file.namestringKeystore filename (basename only).
    file.extensionstringKeystore file extension (e.g., "jks", "p12", "pem").
    keystore.stats.vulnerable_certificatesintCount of certificates with known CVEs.
    keystore.stats.pqc_vulnerable_certificatesintCount of quantum-vulnerable certificates.
    keystore.stats.expired_certificatesintCount of expired certificates.
    keystore.stats.certificate_types.caintCount of CA certificates.
    keystore.stats.certificate_types.end_entityintCount of end-entity certificates.
    keystore.stats.key_algorithms.{algo}intCount of certificates per key algorithm. Key is the algorithm name (e.g., keystore.stats.key_algorithms.RSA). Dynamic — any algorithm name observed in the keystore becomes a key.
    keystore.stats.key_algorithms.RSAintCount of RSA certificates in this keystore. Conditional Only present when RSA certificates exist.
    keystore.stats.key_algorithms.ECDSAintCount of ECDSA certificates in this keystore. Conditional Only present when ECDSA certificates exist.

    This dataset contains flattened application summary fields plus JSON-serialized arrays for concise nested summaries such as ports, crypto libraries, certificates, keystores, encrypted files, and connected destinations.

    event.dataset = "tychon.application" — one event per (application × port)

    Source Produced by -cipherscanquick. Format One flat NDJSON row per listening port on each application. Applications with no detected ports emit a single app-level row. Stable ID: SHA-256(tychon_application | hostname | name | path | port). All multi-value fields (supported protocols, cipher suites) are comma-joined strings.

    event.category=process � event.type=info � populated only when -cipherscanquick in local mode

    FieldTypeDescription
    Each row represents one port on one application. Application-level fields (pid, name, path, quantum_grade.*) are repeated on every port row for that application. Port-specific fields (port, protocol_detected, preferred_cipher, etc.) differ per row. The id field encodes the (application, port) pair for stable upsert.
    tychon.application.pidint32Primary process PID.
    tychon.application.namestringProcess or application name.
    tychon.application.pathstringExecutable path.
    tychon.application.app_rootstringApplication root directory.
    tychon.application.file_versionstringPE file version.
    tychon.application.product_versionstringPE product version.
    tychon.application.product_namestringPE product name.
    tychon.application.company_namestringPE company name.
    tychon.application.sourcestringEntry source: process, vpn_client, ipsec_tunnel.
    tychon.application.service_info.service_namestringWindows service name.
    tychon.application.service_info.service_display_namestringWindows service display name.
    tychon.application.service_info.service_descriptionstringWindows service description.
    tychon.application.quantum_grade.scoreintComposite quantum readiness score for this application (0-100).
    tychon.application.quantum_grade.gradestringLetter grade (for example "A", "B", "C", "D", "F").
    tychon.application.quantum_grade.port_countintNumber of ports scored.
    tychon.application.quantum_grade.worst_port_scoreintScore of the weakest port.
    tychon.application.quantum_grade.best_port_scoreintScore of the strongest port.
    tychon.application.quantum_grade.os_deductionsintScore deductions applied from OS-level findings.
    tychon.application.quantum_grade.os_findingsstringOS-level findings that caused deductions ([]string joined with ", "). Omitted when empty.
    tychon.application.port_countintTotal listening port count for this application (present on every row).
    Per-port fields — vary by row (absent on app-only rows when no ports were detected)
    tychon.application.portintListening port number for this row.
    tychon.application.protocol_detectedstringProtocol detected on this port (e.g. "TLS", "SSH"). Omitted when empty.
    tychon.application.preferred_protocolstringServer's preferred TLS protocol on this port. Omitted when empty.
    tychon.application.preferred_cipherstringServer's preferred cipher suite on this port. Omitted when empty.
    tychon.application.preferred_key_exchangestringServer's preferred key exchange group on this port. Omitted when empty.
    tychon.application.quantum_readyboolTrue when this port's cipher configuration is quantum-safe.
    tychon.application.supported_protocolsstringComma-joined supported TLS protocols on this port. Omitted when empty.
    tychon.application.supported_cipher_suitesstringComma-joined supported cipher suites on this port. Omitted when empty.
    tychon.application.supported_key_exchangesstringComma-joined supported key exchange groups. Omitted when empty.
    tychon.application.insecure_ciphersstringComma-joined insecure cipher names on this port. Omitted when empty.
    tychon.application.weak_ciphersstringComma-joined weak cipher names on this port. Omitted when empty.
    tychon.application.crypto_library_countintCount of crypto library summaries emitted in tychon.application.crypto_libraries.
    tychon.application.crypto_librariesstringJSON-serialized array of concise CryptoLibrarySummary objects.
    tychon.application.in_memory_cert_countintCount of in-memory certificate summaries emitted in tychon.application.in_memory_certificates.
    tychon.application.in_memory_certificatesstringJSON-serialized array of concise CertificateCryptoSummary objects, including subject/issuer identity, issuer geography/organization, self-signed status, and validity details.
    tychon.application.private_key_countintCount of private key summaries emitted in tychon.application.private_keys.
    tychon.application.private_keysstringJSON-serialized array of concise PrivateKeySummary objects.
    tychon.application.keystore_countintCount of keystore summaries emitted in tychon.application.keystores.
    tychon.application.keystoresstringJSON-serialized array of concise KeystoreSummary objects.
    tychon.application.encrypted_file_countintCount of encrypted file findings emitted in tychon.application.encrypted_files.
    tychon.application.encrypted_filesstringJSON-serialized array of EncryptedFileInfo objects associated with the application.
    tychon.application.connected_to_countintCount of outbound TLS destinations discovered by -scanconnected.
    tychon.application.connected_tostringComma-joined ip:port destinations (e.g. "10.0.1.5:443, 10.0.1.6:8443"). Only present when -scanconnected is active.
    tychon.application.keychain_identity_countintCount of macOS Keychain certificate+key pairs accessible to this application. Always 0 on non-macOS platforms.
    tychon.application.keychain_identity_labelsstringComma-joined keychain item labels for this application (e.g. "Microsoft.AAD,GlobalProtect"). Absent when count is 0.
    tychon.application.keychain_identity_pqc_vulnerable_countintCount of Keychain identities whose associated certificate has pqc_vulnerable=true. Absent when count is 0.
    tychon.library.uses_opensslboolTrue when at least one OpenSSL library is loaded by this application's process. Written only when true.
    tychon.library.openssl_versionstringOpenSSL version string detected for this application. Written only when present.
    tychon.library.openssl_pqc_statusstringPQC capability of the detected OpenSSL library: capable, partial, not_capable, or unknown.
    tychon.library.uses_libresslboolTrue when at least one LibreSSL library is loaded by this application's process. Written only when true.
    tychon.library.libressl_versionstringLibreSSL version string detected for this application. Written only when present.
    tychon.library.libressl_pqc_statusstringPQC capability of the detected LibreSSL library.
    tychon.library.uses_apple_securityboolTrue when Apple Security framework is loaded by this application (macOS only). Written only when true.
    tychon.library.apple_security_pqc_statusstringPQC capability of Apple Security framework for this application (macOS only).
    event.dataset = "tychon.pqc_inventory" - one per app+port with QuickCipherScan

    event.action=pqc_inventory_scan � event.category=network � event.kind=event � event.type=info � populated only when -cipherscanquick in local mode

    FieldTypeDescription
    idstringStable unique ID derived from hostID + hostname + process path + port.
    event.kindstringAlways event.
    @timestamptimeScan timestamp (RFC3339).
    scan_typestringScan mode: local/remote/connected.
    host.hostnamestringSystem hostname.
    host.idstringStable host identifier.
    host.ip[]stringHost IP addresses.
    host.architecturestringCPU architecture.
    host.os.namestringOS name.
    host.os.platformstringOS platform.
    host.os.familystringOS family.
    host.os.versionstringOS version.
    host.os.kernelstringKernel version.
    host.cpu.coresint32Physical CPU core count.
    host.memory.totaluint64Total RAM in bytes.
    host.os_categorystringCanonical OS category (e.g., "Windows 10", "Ubuntu 24.04").
    host.os_pqc_tierstringOS-level PQC readiness tier.
    observer.typestring"certscanner" (fixed value).
    observer.vendorstring"CertScanner" (fixed value).
    observer.versionstringScanner binary version.
    observer.os.namestringScanner OS name.
    observer.os.platformstringScanner OS platform.
    observer.os.familystringScanner OS family.
    observer.os.versionstringScanner OS version.
    observer.os.kernelstringScanner kernel version.
    observer.os.buildstringOS build number (Windows only — e.g., "19045").
    observer.bigfix_client_installedboolBigFix client present (only when true).
    observer.bigfix_client_idstringBigFix client ID.
    observer.tychon_client_idstringTYCHON client ID.
    observer.is_vdi_environmentboolVDI environment (only when true).
    observer.vdi_identity_sourcestringVDI identity source.
    observer.database_schema_versionstringIntel database schema version.
    observer.output_schema_versionstringVersion of the flat NDJSON output schema.
    process.namestringApplication process name.
    process.pidint32Application PID.
    process.executablestringApplication executable path.
    process.executable_directorystringDirectory of application executable.
    process.app_rootstringApplication root directory.
    process.sourcestringEntry origin: process, vpn_client, ipsec_tunnel.
    iis.site_namestringIIS site name (Windows, when applicable).
    iis.site_idstringIIS site ID.
    iis.bindingstringIIS site binding string.
    iis.app_pool_namestringIIS application pool name.
    iis.physical_pathstringIIS site physical path.
    iis.versionstringIIS version string.
    iis.manufacturerstringIIS manufacturer (Microsoft).
    pe.file_versionstringPE file version (Windows executables).
    pe.product_versionstringPE product version.
    pe.productstringPE product name.
    pe.companystringPE company name.
    server.portintPort number.
    server.protocolstringDetected protocol.
    tls.preferred_protocolstringServer's preferred TLS version.
    tls.preferred_cipherstringServer's preferred cipher suite.
    tls.preferred_key_exchangestringServer's preferred key exchange group.
    tls.supported_protocolsstringAll supported protocols (comma-joined).
    tls.supported_protocol_countintCount of supported protocols.
    tls.supported_ciphersstringAll supported cipher suites (comma-joined).
    tls.supported_cipher_countintCount of supported cipher suites.
    tls.supported_key_exchangesstringAll supported key exchange groups (comma-joined).
    tls.supported_key_exchange_countintCount of supported key exchange groups.
    tls.insecure_ciphersstringInsecure cipher suites (comma-joined).
    tls.insecure_cipher_countintCount of insecure cipher suites.
    tls.weak_ciphersstringWeak cipher suites (comma-joined).
    tls.weak_cipher_countintCount of weak cipher suites.
    tls.total_probesintTotal TLS handshake probes.
    tls.duration_msint64Quick scan duration in milliseconds.
    tls.previous_preferred_protocolstringPrevious preferred protocol (change detection).
    tls.previous_preferred_cipherstringPrevious preferred cipher (change detection).
    tls.previous_preferred_key_exchangestringPrevious preferred key exchange (change detection).
    tls.previous_supported_protocolsstringPrevious supported protocols (comma-joined, change detection).
    tls.previous_supported_ciphersstringPrevious supported ciphers (comma-joined, change detection).
    tls.previous_supported_key_exchangesstringPrevious supported key exchanges (comma-joined, change detection).
    tls.last_changedtimeTimestamp when cipher configuration last changed.
    tls.first_seentimeTimestamp when this port was first observed.
    crypto.block_ciphersstringBlock cipher algorithms in use (comma-joined, from cipher suite analysis).
    crypto.cipher_modes.AESstringAES modes observed across supported cipher suites. Comma-separated subset of: GCM, CBC, CCM. Omitted if no AES suites present.
    crypto.cipher_modes.ChaCha20stringChaCha20 mode. Always Poly1305 (AEAD) when present. Omitted if no ChaCha20 suites present.
    crypto.cipher_key_sizes.AESstringAES key sizes observed across supported cipher suites. Comma-separated subset of: 128, 256. Omitted if no AES suites present.
    crypto.hash_algorithmsstringHash algorithms in use (comma-joined).
    crypto.mac_algorithmsstringMAC algorithms in use (comma-joined).
    crypto.kex_typesstringKey exchange types in use (comma-joined).
    omb.kex_primarystringPrimary key exchange algorithm.
    omb.kex_primary_quantum_safeboolPrimary key exchange is quantum-safe.
    omb.kex_tierstringKEX tier: PQC READY, MODERN, CLASSICAL, LEGACY, OTHER.
    omb.kex_secondarystringSecondary key exchange groups (comma-joined).
    omb.protocol_tierstringProtocol tier: TLS 1.3, TLS 1.2, LEGACY.
    omb.sig_tierstringSignature tier: PQC READY, MODERN, CLASSICAL, LEGACY.
    omb.module_namestringOMB module name (from OmbFields assessment).
    omb.vulnerability_statusstringOMB vulnerability status.
    omb.crqc_vulnerable_algosstringAlgorithms vulnerable to CRQC.
    omb.pqc_algosstringPQC algorithms in use.
    omb.symmetric_algosstringSymmetric algorithms in use.
    omb.kex_protocolsstringKey exchange protocols.
    omb.kem_algorithmsstringKEM algorithms.
    omb.kem_parametersstringKEM parameters.
    omb.dsa_algorithmsstringDSA algorithms.
    omb.dsa_parametersstringDSA parameters.
    omb.dsa_hash_algorithmsstringHash algorithms used with DSA.
    omb.block_cipher_key_lengthsstringBlock cipher key lengths.
    omb.block_cipher_modesstringBlock cipher modes of operation.
    omb.hash_algorithm_parametersstringHash algorithm parameters.
    omb.mac_algorithm_parametersstringMAC algorithm parameters.
    omb.software_package_namestringSoftware package name.
    omb.software_package_versionstringSoftware package version.
    omb.vendorstringSoftware vendor.
    omb.operating_systemstringOperating system identifier.
    omb.additional_notesstringAdditional assessment notes.
    omb.other_crypto_detailsstringOther cryptographic details.
    omb.certificationsstringRelevant certifications.
    x509.serial_numberstringLeaf certificate serial number.
    x509.subject_cnstringLeaf certificate subject CN.
    x509.issuer_cnstringLeaf certificate issuer CN.
    x509.not_beforetimeLeaf certificate not-before date (RFC3339).
    x509.not_aftertimeLeaf certificate not-after date (RFC3339).
    x509.sig_algorithmstringLeaf certificate signature algorithm.
    x509.key_typestringLeaf certificate key algorithm.
    x509.key_bitsintLeaf certificate key size in bits.
    x509.key_usagestringLeaf certificate key usage (comma-joined).
    keystore_countintNumber of keystores associated with this application.
    in_memory_cert_countintNumber of in-memory certificates found for this application.
    crypto_library_countintNumber of crypto libraries loaded by this application.
    keychain_identity_countintNumber of macOS Keychain certificate+key pairs accessible to this application (macOS only).
    keychain_identity_labelsstring[]Array of keychain item labels. Absent when count is 0.
    keychain_identity_pqc_vulnerable_countintCount of Keychain identities with pqc_vulnerable=true. Absent when count is 0.
    event.dataset = "tychon.app_certificate" - one per in-memory certificate per application

    Source Produced by -cipherscanquick + -scanmemory. Format One event per X.509 certificate found loaded in a running process's virtual memory (not file-based). Emitted alongside tychon.application.

    event.kind=event · event.category=process · event.action=in_memory_certificate · event.type=info

    FieldTypeDescription
    event.kindstringAlways event.
    tychon.application.namestringName of the process that holds this certificate in memory.
    tychon.application.pathstringExecutable path of the owning process.
    tychon.application.pidint32PID of the owning process.
    x509.serial_numberstringCertificate serial number (hex string).
    x509.subject_cnstringSubject Common Name.
    x509.subject_orgstringSubject Organization (joined with ", " when multiple values). Written only when present.
    x509.issuer_cnstringIssuer Common Name.
    x509.issuer_orgstringIssuer Organization (joined with ", " when multiple values). Written only when present.
    x509.not_beforetimeValidity start date (RFC3339).
    x509.not_aftertimeValidity end date (RFC3339).
    x509.sig_algorithmstringSignature algorithm (e.g., SHA256WithRSA).
    x509.key_typestringPublic key algorithm (e.g., RSA, EC, Ed25519).
    x509.key_bitsintPublic key size in bits.
    x509.curve_namestringEC curve name when key_type is EC (e.g., P-256, P-384). Written only when present.
    x509.fingerprint_sha256stringSHA-256 fingerprint of the certificate (hex string). Written only when present.
    event.dataset = "tychon.connected_quick" - one per active outbound connection

    event.action=connected_quick_scan � populated only when -scanconnected is active � browser processes excluded � no full cipher detail fields

    Unlike other event types, this event does NOT begin with the full observer.* base fields. It emits only selective host identity fields from ScanningSystemInfo when available. Specifically: tychon.host.machine_serial_number, observer.machine_serial_number, tychon.host.bios_serial_number, observer.bios_serial_number, observer.organization, tychon.host.organization, observer.domain, and tychon.host.domain are only written when scanningSystem != nil.

    FieldTypeDescription
    idstringStable unique ID: SHA-1 hex of concatenated SourceProcessName + SourcePID + RemoteIP + Port.
    @timestamptimeScan timestamp (RFC3339Nano).
    event.datasetstringAlways tychon.connected_quick.
    event.actionstringAlways connected_quick_scan.
    tychon.typestringAlways connected_quick.
    tychon.scan_modestringAlways local.
    certificate.is_filestringAlways the string false (this is not a file-based certificate event).
    tychon.host.os.quantum_readyboolWhether the OS is considered quantum-ready based on its version tier.
    tychon.host.os.quantum_ready_whenstringEstimated date when this OS version will be quantum-ready (empty string if already ready or unknown).
    tychon.host.machine_serial_numberstringMachine serial number from ScanningSystemInfo. Conditional Only present when scanningSystem != nil and value is non-empty.
    observer.machine_serial_numberstringMachine serial number (ECS observer namespace). Conditional Same condition as above.
    tychon.host.bios_serial_numberstringBIOS serial number from ScanningSystemInfo. Conditional
    observer.bios_serial_numberstringBIOS serial number (ECS observer namespace). Conditional
    observer.organizationstringOrganization name from ScanningSystemInfo. Conditional
    tychon.host.organizationstringOrganization name (tychon namespace). Conditional
    observer.domainstringDomain name from ScanningSystemInfo. Conditional
    tychon.host.domainstringDomain name (tychon namespace). Conditional
    tychon.tagsstringComma-joined list of tags assigned to this connection by the tagging engine. Conditional Omitted when no tags are assigned.
    connected.remote_ipstringRemote IP address of the connection (always present).
    connected.portintRemote port number of the connection (always present).
    connected.has_cryptoboolTrue when TLS was confirmed on this connection via a successful quick cipher probe. Always written (true or false).
    connected.source_processstringName of the process that owns the connection. Conditional Omitted when SourceProcessName is empty.
    process.namestringProcess name (ECS namespace, same value as connected.source_process). Conditional Omitted when SourceProcessName is empty.
    connected.source_pidint32PID of the process that owns the connection. Conditional Omitted when SourcePID is zero.
    process.pidint32Process PID (ECS namespace, same value as connected.source_pid). Conditional Omitted when SourcePID is zero.
    destination.ipstringDestination IP address (ECS namespace, same value as connected.remote_ip). Always present.
    destination.portintDestination port (ECS namespace, same value as connected.port). Always present.
    event.dataset = "tychon.non_tls_cipher" - one per non-TLS protocol profile

    event.action=non_tls_cipher_detected — emitted for SMB3 (port 445), SNMPv3 (port 161), and Kerberos (port 88). Field names mirror tychon.cipher.* for consistent downstream processing. Detection source: SMB3 via TCP network probe; SNMPv3 via /etc/snmp/snmpd.conf (Linux/macOS) or Windows SNMP service registry; Kerberos via /etc/krb5.conf (Linux/macOS) or SupportedEncryptionTypes registry key (Windows).

    FieldTypeDescription
    @timestamptimeScan timestamp (RFC3339Nano).
    event.datasetstringAlways tychon.non_tls_cipher.
    event.actionstringAlways non_tls_cipher_detected.
    event.categorystringAlways security.
    event.typestringAlways info.
    observer.hostnamestringHostname of the scanning system. Conditional
    host.hostnamestringHostname (ECS host namespace). Conditional
    observer.os.namestringOS name of the scanner. Conditional
    observer.machine_serial_numberstringMachine serial number. Conditional
    observer.organizationstringOrganization name. Conditional
    tychon.tagsstringComma-joined tag list. Conditional
    tychon.cipher.protocolstringProtocol: SMB3, SNMPv3, or Kerberos.
    tychon.cipher.portintWell-known port (445, 161, 88). Conditional Omitted when 0.
    tychon.cipher.supported_ciphersstringComma-joined list of safe cipher/enctype strings. Conditional
    tychon.cipher.insecure_ciphersstringComma-joined list of broken/banned ciphers. Conditional
    tychon.cipher.weak_ciphersstringComma-joined list of deprecated ciphers. Conditional
    tychon.cipher.preferred_cipherstringServer-selected cipher from network negotiation (SMB3 only). Conditional
    tychon.cipher.auth_algorithmsstringComma-joined acceptable authentication algorithm names (SNMPv3, Kerberos). Conditional
    tychon.cipher.is_encryptedboolWhether the protocol session is encrypted. Always present.
    tychon.cipher.pqc_vulnerableboolTrue when any cipher is vulnerable to a cryptographically-relevant quantum computer. Always present.
    tychon.cipher.pqc_readinessstringOne of safe, transitional, or vulnerable. Always present.
    tychon.cipher.quantum_riskstringOne of low, medium, high, or critical. Always present.
    tychon.cipher.migration_prioritystringOne of low, medium, high, or critical. Always present.
    tychon.cipher.recommended_actionstringHuman-readable remediation suggestion. Conditional
    tychon.cipher.config_sourcestringDetection method: network_probe, registry, registry_group_policy, registry_lsa_direct, registry_os_default, krb5_conf, krb5_conf_defaults, snmpd_conf. Always present.
    Cross-dataset normalized fields — enable single-query visualization across all security protocol event types
    tychon.crypto.protocolstringProtocol family: SMB3, SNMPv3, Kerberos, SMTP, IMAP, LDAP, or PostgreSQL. Always present.
    tychon.crypto.cipherstringNegotiated or preferred bulk cipher. Preferred cipher when available, else first supported cipher. Conditional
    tychon.crypto.authstringFirst entry of auth_algorithms (SNMPv3 USM or Kerberos pre-auth). Conditional
    tychon.crypto.pqc_readinessstringOne of ready, transitional, vulnerable, or critical. Same source as tychon.cipher.pqc_readiness.
    tychon.crypto.quantum_riskstringOne of none, low, medium, high, or critical. Same source as tychon.cipher.quantum_risk.
    tychon.crypto.protocol_versionstringTLS version negotiated by STARTTLS probes (e.g. 1.3). Populated from SupportedProtocols[0] when the protocol is SMTP/IMAP/LDAP/PostgreSQL. Conditional
    idstringUnique document ID: SHA-1 hex of protocol + config_source + timestamp.
    event.dataset = "vpn" - one per detected VPN client

    Source Produced by -detect-vpn-clients. Format Flattens VPNClientInfo with nested connection, security, config, and PQC assessment objects at the root level.

    event.kind=event · event.category=configuration · event.action=vpn_client_detected · tychon.type=vpn_client

    FieldTypeDescription
    event.kindstringAlways event.
    idstringStable unique ID (SourceID). Also written to _id.
    _idstringElasticsearch document ID. Copy of id.
    vpn_client.* — core identity fields
    vpn_client.namestringVPN client name (e.g., Cloudflare WARP, OpenVPN).
    vpn_client.vendorstringVPN client vendor (e.g., Cloudflare Inc.).
    vpn_client.versionstringInstalled version string. Always written, even when empty.
    vpn_client.statusstringVPN client status: active, inactive, unknown.
    vpn_client.activeboolTrue when the VPN client is currently running.
    vpn_client.detection_methodstringHow the client was detected: registry, filesystem, service, process, certificate.
    vpn_client.detection_confidencestringDetection confidence level: high, medium, low.
    vpn_client.last_seentimeLast observed timestamp (RFC3339Nano).
    vpn_client.first_detectedtimeFirst detection timestamp (RFC3339Nano). Written only when non-zero.
    vpn_client.install_pathstringInstallation directory path. Written only when non-empty.
    vpn_client.config_pathstringPath to the VPN client configuration file. Written only when non-empty.
    vpn_client.executable_pathstringPath to the VPN client executable. Written only when non-empty.
    vpn_client.process_idintPID of the running VPN process. Written only when non-zero.
    file.pathstringECS field: copy of vpn_client.install_path when present.
    service.namestringECS field: VPN service name. Written only when service name is non-empty.
    service.statestringECS field: service state string (mirrors vpn_client.status). Written only when service name is non-empty.
    vpn_connection.* — active connection details (from VPNConnectionInfo; written only when ConnectionInfo != nil)
    vpn_connection.server_addressstringVPN server hostname or IP address.
    vpn_connection.server_portintVPN server port.
    vpn_connection.encryption_algorithmstringActive bulk encryption algorithm (e.g., AES-256-CBC, ChaCha20-Poly1305).
    vpn_connection.key_exchange_algorithmstringActive key exchange algorithm (e.g., ECDH-P256, X25519, RSA-2048).
    vpn_connection.dh_groupstringDiffie-Hellman group used for key exchange. Written only when non-empty.
    security.* — security assessment (from VPNSecurityAssessment; written only when SecurityAssessment != nil)
    security.security_scoreintSecurity score 0–100. Always written when SecurityAssessment is present.
    security.pqc_supportboolTrue when the VPN client supports post-quantum cryptography. Always written when SecurityAssessment is present.
    security.weak_cryptoboolTrue when the VPN client uses weak cryptographic algorithms.
    vpn_config.* — configuration security (from VPNConfigSecurity; written only when ConfigurationSecurity != nil)
    vpn_config.authentication_methodstringAuthentication method: certificate, psk, username_password, eap.
    vpn_config.dns_leak_protectionboolDNS leak protection is enabled.
    vpn_config.kill_switchboolKill switch (network lock) is enabled.
    vpn_config.split_tunnelingboolSplit tunneling is enabled (security risk: traffic bypasses VPN).
    vpn_config.ipv6_leak_protectionboolIPv6 leak protection is enabled.
    vpn_config.auto_reconnectboolAutomatic reconnect is enabled.
    vpn_config.logging_enabledboolVPN connection logging is enabled.
    vpn_config.config_encryptedboolVPN configuration file is encrypted.
    vpn_config.weak_settingsstringList of weak configuration settings ([]string joined with ", "). Written only when non-empty.
    pqc.* — PQC assessment (from PQCAssessment; written only when PQCAssessment != nil)
    pqc.quantum_resistancestringQuantum resistance level: high, medium, low, none.
    pqc.pqc_migration_statusstringPQC migration status: ready, partial, not_ready.
    pqc.supported_algorithmsstringPQC algorithm types supported by this client ([]PQCAlgorithmType serialized, joined with ", "). Written only when non-empty.
    pqc.pqc_algorithm_details.ML-KEM.algorithm_typestringAlgorithm type for the ML-KEM entry in the PQC algorithm details map. Dynamic key — any algorithm name in the PQCAlgorithmDetails map becomes a sub-namespace.
    pqc.pqc_algorithm_details.ML-KEM.implementationstringImplementation name for ML-KEM (e.g., library or module name).
    pqc.pqc_algorithm_details.ML-KEM.standard_statusstringStandardization status: draft, finalized, deprecated.
    event.dataset = "ipsec" - one per detected IPSec tunnel

    event.kind=event · event.category=network · event.action=ipsec_tunnel_detected · tychon.type=ipsec_tunnel

    FieldTypeDescription
    ipsec_tunnel.source_idstringStable source ID (also written to id and _id).
    ipsec_tunnel.namestringTunnel name or identifier.
    ipsec_tunnel.implementationstringIPSec implementation (e.g. strongSwan, libreswan).
    ipsec_tunnel.versionstringImplementation version. Always written, even when empty.
    ipsec_tunnel.statusstringTunnel status (e.g. active, inactive).
    ipsec_tunnel.activeboolWhether the tunnel is currently active.
    ipsec_tunnel.detection_methodstringDetection method (e.g. config_file, service).
    ipsec_tunnel.detection_confidencestringConfidence level: high, medium, low.
    ipsec_tunnel.config_pathstringPath to configuration files. Always written, even when empty.
    ipsec_tunnel.last_seentimeLast observed timestamp (RFC3339Nano).
    ipsec_tunnel.first_detectedtimeFirst detection timestamp (RFC3339Nano).
    tunnel_details.* — tunnel configuration at root level
    tunnel_details.local_endpointstringLocal tunnel endpoint IP (also written to source.ip).
    tunnel_details.remote_endpointstringRemote tunnel endpoint IP (also written to destination.ip).
    tunnel_details.local_subnetstringLocal subnet (also written to source.network).
    tunnel_details.remote_subnetstringRemote subnet (also written to destination.network).
    tunnel_details.*objectAll other TunnelDetails fields flattened at root level.
    security_association.* — IKE and ESP SA details at root level
    security_association.*objectAll SecurityAssociation fields flattened at root level.
    security.* — security assessment at root level
    security.scoreintSecurity score 0–100. Always written when SecurityAssessment is present.
    security.pqc_supportboolTrue when IPSec supports post-quantum cryptography. Always written when SecurityAssessment is present.
    pqc.* — PQC assessment at root level
    pqc.*objectAll PQCAssessment fields flattened at root level.
    ECS network fields
    source.ipstringLocal tunnel endpoint IP.
    destination.ipstringRemote tunnel endpoint IP.
    source.networkstringLocal subnet CIDR.
    destination.networkstringRemote subnet CIDR.
    event.dataset = "tychon.macsec" - one per MACsec network interface

    event.kind=event · event.category=network · event.action=macsec_interface_detected · tychon.type=macsec

    FieldTypeDescription
    macsec.interface_namestringMACsec interface name (e.g. macsec0).
    macsec.parent_interfacestringUnderlying parent network interface.
    macsec.implementationstringMACsec implementation (e.g. kernel, wpa_supplicant).
    macsec.statusstringInterface status (e.g. active, inactive).
    macsec.activeboolWhether the interface is currently active.
    macsec.detection_methodstringHow the interface was detected.
    macsec.detection_confidencestringDetection confidence level.
    macsec.last_seentimeLast observed timestamp (RFC3339Nano).
    macsec.first_detectedtimeFirst detection timestamp (RFC3339Nano).
    macsec.cipher_suitestringMACsec cipher suite (e.g. GCM-AES-128, GCM-AES-256).
    macsec.validation_modestringFrame validation mode.
    macsec.protectboolMACsec protect mode is enabled.
    macsec.encryptboolFrame encryption is enabled.
    macsec.replay_protectboolReplay attack protection is enabled.
    macsec.replay_windowintReplay window size. Written only when non-zero.
    macsec.include_sciboolSCI included in frame header.
    macsec.scistringSecurity Channel Identifier. Written only when non-empty.
    macsec.key_agreement_methodstringKey agreement method (e.g. MKA, static).
    macsec.mka_enabledboolMACsec Key Agreement (MKA) enabled.
    macsec.mka_priorityintMKA actor priority. Written only when non-zero.
    macsec.security_scoreintSecurity score from assessment.
    macsec.quantum_safeboolWhether MACsec configuration is quantum-safe.
    macsec.risk_levelstringRisk level from security assessment.
    macsec.findingsstringSecurity findings joined with "; ".
    tychon.crypto.protocolstringAlways MACsec.
    tychon.crypto.cipherstringMACsec cipher suite (cross-dataset).
    tychon.crypto.key_exchangestringKey agreement method (cross-dataset).
    tychon.pqc_vulnerablebooltrue when macsec.quantum_safe is false.
    tychon.crypto.pqc_vulnerableboolCross-dataset PQC vulnerability flag.
    event.dataset = "archivefile" - one per Outlook PST/OST archive

    event.kind=event · event.category=file · event.action=outlook_archive_detected · tychon.type=archivefile

    FieldTypeDescription
    idstringStable source ID (SourceID). Also written to _id.
    archive.*objectFull OutlookArchiveInfo struct flattened with archive. prefix.
    archive.typestringArchive type: pst or ost.
    archive.versionstringArchive file format version.
    archive.is_encryptedboolWhether the archive is password-protected.
    archive.encryption_typestringEncryption type used.
    archive.encryption_strengthstringDescription of encryption strength.
    event.dataset = "config_cert" - one per certificate path reference in a config file

    event.kind=event · event.category=configuration · event.action=config_cert_ref_discovered · tychon.type=config_cert

    FieldTypeDescription
    config.config_filestringPath to the configuration file that references the certificate.
    config.property_keystringConfig property key containing the certificate path reference.
    config.resolved_pathstringResolved absolute path to the referenced certificate file.
    config.ref_typestringReference type classification (e.g. cert_file, key_file, keystore).
    file.pathstringSame as config.resolved_path (ECS field).
    file.namestringFilename component of the resolved path.
    process.pidintPID of the process whose config was scanned. Written only when non-zero.
    process.namestringProcess name. Written only when non-empty.
    process.pathstringProcess executable path. Written only when non-empty.
    Cross-Dataset Normalized Fields — tychon.crypto.*

    Every security-protocol event type emits a tychon.crypto.* block alongside its native fields. These fields use consistent names across TLS, SSH, SMB3, SNMPv3, Kerberos, STARTTLS (SMTP/IMAP/LDAP/PostgreSQL), VPN, IPSec, and MACsec events, enabling a single Kibana/Elasticsearch visualization (e.g. tychon.crypto.quantum_risk : "critical") to return findings from all event types at once. Existing ECS (tls.*, ssh.*) and protocol-specific (tychon.cipher.*, tychon.kex.*) fields are preserved — these fields are purely additive.

    FieldTypeDescription / Values
    tychon.crypto.protocolstringSecurity protocol family: TLS, SSH, SMB3, SNMPv3, Kerberos, SMTP, IMAP, LDAP, PostgreSQL, IPSec, MACsec, X.509 (filesystem/keystore certificates), library (crypto library events). For VPN events, the protocol value comes from the connection's Protocol field (e.g. WireGuard, OpenVPN).
    tychon.crypto.protocol_versionstringVersion of the protocol. Examples: 1.3 (TLS), 1.2 (TLS), 2 (SSH). For STARTTLS events this is the TLS version negotiated inside the protocol. Conditional
    tychon.crypto.key_exchangestringNegotiated key exchange / group. Examples: x25519, curve25519-sha256, X25519MLKEM768, modp14, WPA-PSK. Conditional
    tychon.crypto.cipherstringBulk encryption cipher extracted from the full cipher suite name or directly from the protocol profile. Examples: AES-256-GCM, aes256-ctr, 3DES, CHACHA20-POLY1305. Conditional
    tychon.crypto.macstringMAC / integrity algorithm. Examples: SHA-384, umac-128@openssh.com, HMAC-SHA2-256. Conditional
    tychon.crypto.authstringAuthentication or signature method. Examples: RSA-SHA256, ecdsa-sha2-nistp256, PSK, Certificate. Conditional
    tychon.crypto.pqc_readinessstringCanonical PQC readiness status: ready, transitional, vulnerable, or critical. Present on all event types that carry PQC assessment data.
    tychon.crypto.quantum_riskstringCanonical risk level: none, low, medium, high, or critical. Present on all event types that carry PQC risk data.
    tychon.crypto.pqc_vulnerableboolBoolean flag — true when any cipher, key exchange, or algorithm in use is vulnerable to a cryptographically-relevant quantum computer. Present on all event types. Use this field for single-query cross-dataset vulnerability filtering.
    tychon.crypto.ntlm.* — sub-namespace in tychon.quantum_readiness events (when NTLM detected)
    tychon.crypto.ntlm.protocolstringNTLM protocol string from registry (e.g. NTLMv2). Conditional
    tychon.crypto.ntlm.authstringSame as ntlm.protocol (NTLM uses protocol string as auth description).
    tychon.crypto.ntlm.pqc_readinessstringvulnerable when NTLMPqcVulnerable=true, transitional otherwise.
    tychon.crypto.ntlm.quantum_riskstringhigh when NTLMPqcVulnerable=true, low otherwise.
    tychon.crypto.wifi.* — sub-namespace in tychon.quantum_readiness events (when WiFi present)
    tychon.crypto.wifi.protocolstringWiFi security protocol (e.g. WPA3-SAE, WPA2). Conditional
    tychon.crypto.wifi.cipherstringWiFi pairwise cipher (e.g. AES-CCMP, TKIP). Conditional
    tychon.crypto.wifi.key_exchangestringWiFi key management method (e.g. SAE, WPA-PSK). Conditional
    tychon.crypto.wifi.pqc_readinessstringvulnerable when WifiPqcVulnerable=true, transitional otherwise.
    tychon.crypto.wifi.quantum_riskstringWiFi quantum risk level from assessment (e.g. medium, high). Conditional

    Coverage by event type: tychon.cipher (TLS) — protocol, protocol_version, key_exchange, cipher, mac, auth, pqc_readiness, quantum_risk, pqc_vulnerable  |  tychon.ssh — protocol, protocol_version, key_exchange, cipher, mac, auth, pqc_readiness, quantum_risk, pqc_vulnerable  |  tychon.non_tls_cipher (SMB3/SNMPv3/Kerberos/STARTTLS) — protocol, cipher, auth, pqc_readiness, quantum_risk, pqc_vulnerable [+protocol_version for STARTTLS]  |  tychon.vpn_client — protocol, key_exchange, cipher, mac, auth, pqc_readiness, quantum_risk, pqc_vulnerable  |  tychon.ipsec_tunnel — protocol=IPSec, key_exchange, cipher, mac, auth, pqc_readiness, quantum_risk, pqc_vulnerable  |  tychon.macsec — protocol=MACsec, cipher, key_exchange, pqc_readiness, quantum_risk, pqc_vulnerable  |  tychon.filesystem_certificateprotocol=X.509, cipher, pqc_vulnerable, pqc_readiness, quantum_risk  |  tychon.keystore_certificateprotocol=X.509, cipher, pqc_vulnerable, pqc_readiness, quantum_risk  |  tychon.crypto_libraryprotocol=library, cipher, pqc_vulnerable, pqc_readiness, quantum_risk  |  tychon.quantum_readiness — ntlm.* and wifi.* sub-namespaces

    Implementation Notes

    ->

    flattenObjectToMap behavior: String slices are joined with ", ". Time values use RFC3339Nano. Zero integers, empty strings are omitted. Booleans are always included. Non-string slices are JSON-serialized as strings. Maps with string keys are recursively flattened.

    ->

    Base observer fields: Every NDJSON event starts with the base event. The scanner host's ScanningSystemInfo is flattened under observer.*, with four key remappings: host_id -> observer.id, platform_family -> observer.os.family, platform -> observer.os.platform, os -> observer.os.name.

    ->

    Certificate chain: Chain certs in port_detail events use index-based keys: certificate.chain.0.*, certificate.chain.1.*, etc. Subject/issuer nested fields are removed and rewritten as flat strings.

    ->

    Intel map flattening: The intel field on MainCipherNegotiationInfo is a map[string]any. When flattened under tychon.cipher_negotiation.intel.*, all keys from the intel map become dot-notation fields. This includes KEX, protocol, and connection composite fields when enrichIntelMapWithKex has been called.

    ->

    AppReport events: tychon.application and tychon.pqc_inventory events are only emitted when -cipherscanquick runs in local scan mode and report.AppReport != nil.

    ->

    SSH-only ports: When a port responds to SSH but not TLS (and TLS cipher list is empty), a single port_detail event is emitted with SSH fields flattened under ssh.*.

    ->

    active / last_seen semantics: The active field is written only when false - this marks a previously-seen asset that was NOT observed in the current scan (tombstoned). When an asset IS present in the current scan, active is omitted entirely (omitempty). The last_seen field is a string in RFC3339 format and is likewise only present for tombstoned assets to record when they were last seen.

    ->

    keystore.stats.key_algorithms dynamic keys: The keystore.stats.key_algorithms.{algo} field in keystore summary events uses the algorithm name (e.g., RSA, EC, Ed25519) as the key. The count of certificates using that algorithm is the integer value.

    ->

    -scanconnected browser exclusion: The isBrowserProcess() function filters out connections from known browsers before any probe is attempted. Excluded process names (case-insensitive): chrome, msedge, firefox, brave, opera, duckduckgo, iexplore, chromium, safari. These processes generate large volumes of ephemeral TLS connections and are not operationally meaningful for PQC assessment.

    ->

    -scanconnected TLS confirmation: A connection is recorded with has_crypto=true only when getDefaultCipherInfoQuick() successfully completes a TLS handshake. Connections that time out, refuse the handshake, or speak plaintext are still recorded but with has_crypto=false. No full cipher suite enumeration is performed; tychon.connected_quick events never contain cipher detail, certificate chain, or SSH fields.

    ->

    -scanconnected limited observer fields: Unlike every other event type, tychon.connected_quick does not inject the full observer.* base field set. It writes only selective identity fields (machine_serial_number, bios_serial_number, organization, domain) when scanningSystem != nil. A parser must not assume standard observer host/OS fields are present in this dataset.