Clapham Digital · Care reports
Check a care report’s signature.
Two commands tell you the report is the one I signed and that nothing in it has changed.
What is signed
I sign every monthly site care report myself, as its engineer of record, with a passkey that makes me unlock it (Face ID or my passcode) each time it signs.
The signature covers a short statement. The statement names the client, the month, and a SHA-256 fingerprint of the report’s text. If one character of the report changes, the check fails.
What you need
Make a new, empty folder and download into it, from your report page, the month’s three files: report.md (the report’s text), statement.txt and statement.sig. From this page, download allowed_signers into the same folder. A fresh folder matters: a second download of the same name can arrive as report (1).md, and then you would be checking last month’s file.
OpenSSH 8.4 or later. Run ssh -V to see your version. Current Macs and Linux have it. On Windows, use Command Prompt (not PowerShell) and check ssh -V there too.
Step 1: the signature
In a terminal, in the folder with the files, run:
ssh-keygen -Y verify -f allowed_signers -I [email protected] -n claphamdigital-care-report -s statement.sig < statement.txt
The same command works in Windows Command Prompt. When the statement is mine and unchanged, it prints a line that starts like this, followed by the key’s type and fingerprint:
Good "claphamdigital-care-report" signature for [email protected] with ...
Step 2: the report
Get the report’s fingerprint. On a Mac:
shasum -a 256 report.md
On Linux, sha256sum report.md. On Windows, certutil -hashfile report.md SHA256. Compare the long number it prints with the SHA-256: line in statement.txt. Capital and small letters do not matter; every other character must match.
Step 3: read what it says
Open statement.txt. Its Client: and Report: lines name the client and the month, and the file name I signed it as (for example 2026-10.md; on your page it is called report.md). Make sure they are yours and the month you meant. Read-check: is a number from inside the report that I read back when I signed it.
Inside report.md, the sign-off line still says “Not yet reviewed”. That is right: I sign the text as it stood before the sign-off was filled in, so that is what the fingerprint covers. The PDF on your page shows the same report with the sign-off filled.
The key
Key fingerprint: SHA256:k7W5K5UxuJkJIHKlROxooI4LS5ZnR8BYUbl/MU9HyAA
The same key is the only one in allowed_signers.
Questions? Email [email protected].