Results
Results appear here.
Paste a complete email below. Every DKIM2-Signature and Message-Instance level is verified entirely in your browser — parsing, hashing, and signature cryptography all run locally. About DKIM2 · server validator
A result reports only whether the message travelled here unmodified and unreplayed (§14.1). It says nothing about whether the message is wanted, or whether any declared modification was benign.
Checks follow draft-ietf-dkim-dkim2-spec-08. New in -08:
s= and h= may offer alternatives
(a,b|c passes if both a and b
pass, or c does), and an algorithm this verifier does not
implement (including ML-DSA-44, mldsa44) is an error
unless an alternative passes; Auto-Submitted and
VBR-Info are now covered by the header hash; tag names and
Recipe JSON keys must be lowercase; an invalid Recipe step is named
(Recipe b[1] is invalid); a malformed public key (an RSA
key under 1024 bits, an Ed25519 key that is not 32 octets) is reported
as such; and a timestamp, Chain of Custody or From Authentic failure is
FAIL. A message whose history includes a null body Recipe
passes but is marked not fully verified: the earlier
body cannot be checked. Still checked as in -07: the
From: must be Authentic, the Chain of Custody hop by hop,
and Recipes carry lines that are not UTF-8 as "u" steps.
A pasted message has no delivery time, so
timestamps are checked against now: a signature more than 14 days old
shows as signature expired. When a message has more
than one fault, the first error listed is the primary one and sets the
result: the Message-Instances (structure, Recipes, then the hashes, top
down) are checked before the signatures, and no public key is used
until they all pass.
Public keys are fetched over DNS-over-HTTPS from Cloudflare
(cloudflare-dns.com), so the signing domains and selectors in
your message are sent to Cloudflare. The message body never leaves your browser.
Results
Results appear here.