checker-tls/checker
Pierre-Olivier Mercier 03af5615ae
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
checker: implement ShareKey to mutualise TLS probes across targets
A TLS probe result depends only on the set of endpoints actually dialed and
the probe knobs, never on which domain or service published them: the
observation is a map keyed by each endpoint's contract Ref
(host|port|effective SNI|STARTTLS|require). Implement sdk.ObservationSharer so
the host dials a host:port once and serves every target that resolves to the
same endpoint set, instead of re-handshaking per record. This is the
highest-value case among the checkers, since dane, xmpp, srv, dav, … all
funnel their endpoints into this single checker.

The share key sorts the endpoint Refs and folds in the probe timeout and the
cipher-enumeration flag, since both change what is collected (a tighter
timeout can fail a slow handshake; enumeration adds the Enum block). An empty
or unparseable entry set yields "" so the host falls back to per-target
caching.
2026-06-18 15:27:54 +09:00
..
collect.go checker: implement ShareKey to mutualise TLS probes across targets 2026-06-18 15:27:54 +09:00
definition.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
enumerate.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
enumerate_test.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
fetch.go Harden contract validation, STARTTLS edge cases, and rule output 2026-04-26 19:55:44 +07:00
interactive.go Migrate to checker-sdk-go v1.3.0 with standalone build tag 2026-04-24 14:04:55 +07:00
prober.go Harden contract validation, STARTTLS edge cases, and rule output 2026-04-26 19:55:44 +07:00
prober_test.go Split monolithic rule into per-test rules, collect gathers facts only 2026-04-25 23:14:42 +07:00
provider.go Initial commit 2026-04-24 12:13:57 +07:00
rule.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
rules_certificate.go Split monolithic rule into per-test rules, collect gathers facts only 2026-04-25 23:14:42 +07:00
rules_discovery.go Split monolithic rule into per-test rules, collect gathers facts only 2026-04-25 23:14:42 +07:00
rules_enumeration.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
rules_enumeration_test.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
rules_handshake.go Split monolithic rule into per-test rules, collect gathers facts only 2026-04-25 23:14:42 +07:00
rules_protocol.go Harden contract validation, STARTTLS edge cases, and rule output 2026-04-26 19:55:44 +07:00
rules_reachability.go Split monolithic rule into per-test rules, collect gathers facts only 2026-04-25 23:14:42 +07:00
rules_starttls.go Split monolithic rule into per-test rules, collect gathers facts only 2026-04-25 23:14:42 +07:00
sharekey_test.go checker: implement ShareKey to mutualise TLS probes across targets 2026-06-18 15:27:54 +09:00
starttls.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
starttls_imap.go Harden contract validation, STARTTLS edge cases, and rule output 2026-04-26 19:55:44 +07:00
starttls_ldap.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
starttls_pop3.go Harden STARTTLS handlers and add per-dialect tests 2026-04-25 23:15:17 +07:00
starttls_smtp.go Harden contract validation, STARTTLS edge cases, and rule output 2026-04-26 19:55:44 +07:00
starttls_test.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
starttls_xmpp.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
types.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00
upgrader_for_test.go Add tlsenum package and add version/cipher enumeration into the checker 2026-04-29 13:35:29 +07:00