diff --git a/.gitignore b/.gitignore index d297e8c..41eb9b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -checker-openpgpkey -checker-openpgpkey.so +checker-email-keys +checker-email-keys.so diff --git a/Dockerfile b/Dockerfile index b346539..112385c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,9 +6,9 @@ WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY . . -RUN CGO_ENABLED=0 go build -ldflags "-X main.Version=${CHECKER_VERSION}" -o /checker-openpgpkey . +RUN CGO_ENABLED=0 go build -ldflags "-X main.Version=${CHECKER_VERSION}" -o /checker-email-keys . FROM scratch -COPY --from=builder /checker-openpgpkey /checker-openpgpkey +COPY --from=builder /checker-email-keys /checker-email-keys EXPOSE 8080 -ENTRYPOINT ["/checker-openpgpkey"] +ENTRYPOINT ["/checker-email-keys"] diff --git a/Makefile b/Makefile index ddf32ee..b1b1b12 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -CHECKER_NAME := checker-openpgpkey +CHECKER_NAME := checker-email-keys CHECKER_IMAGE := happydomain/$(CHECKER_NAME) CHECKER_VERSION ?= custom-build diff --git a/NOTICE b/NOTICE index c463df1..935eb2b 100644 --- a/NOTICE +++ b/NOTICE @@ -1,4 +1,4 @@ -checker-openpgpkey +checker-email-keys Copyright (c) 2026 The happyDomain Authors This product is licensed under the MIT License (see LICENSE). diff --git a/README.md b/README.md index 1efd879..eebb76b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# checker-openpgpkey +# checker-email-keys DANE-Email posture checker for happyDomain. @@ -66,28 +66,6 @@ rule engine can fold them into a single `CheckState`. | `smimea_self_signed` | info | Self-signed certificate paired with PKIX-EE usage. | | `smimea_hash_only` | info | Matching-type 1/2 only carries a digest; certificate can't be inspected. | -## Why a bespoke checker instead of a third-party testsuite? - -There is no canonical "OPENPGPKEY / SMIMEA testsuite" in Go or as a -self-hostable online service: - -- `ldns-dane` (NLnet Labs) validates DANE-TLSA and handles SMIMEA only - shallowly (it parses the record without deep certificate checks). -- `hokey` (Paul Wouters) queries OPENPGPKEY but does not validate the - key material. -- Online DANE validators (e.g. `dane.sys4.de`, `has-tls-rpt.com`) focus - on SMTP DANE-TLSA, not email-identity records. - -The heavy lifting here is standard Go parsing: - -- `github.com/ProtonMail/go-crypto/openpgp` (maintained fork of the - deprecated `golang.org/x/crypto/openpgp`) for OpenPGP packet parsing, - UIDs, subkeys, revocations, key-lifetime self-signatures. -- `crypto/x509` for SMIMEA certificate parsing, validity window, EKU, - key-usage, signature-algorithm and key-size checks. -- `github.com/miekg/dns` for the DNS+EDNS0+DO query and the `AD` flag - read-back used as the DNSSEC-validation signal. - ## Options | Id | Type | Default | Description | @@ -107,22 +85,5 @@ Auto-filled by the host: `domain_name`, `subdomain`, `service`, make plugin # Standalone HTTP server -make && ./checker-openpgpkey -listen :8080 +make && ./checker-email-keys -listen :8080 ``` - -## HTML report - -The report renders as a self-contained HTML document intended for -embedding in an `