Security
These are the keys we sign with. If you want to know whether the packages and metadata on your system actually came from us, this is the list you check them against.
That's all this page is - the list. The guide is over at Verifying the Sandcastle signatures: what each key does, the commands that check them, the older keys, and what to do when something doesn't line up.
The repository roots
A fingerprint is the SHA-256 of a root file, exactly as the repo serves it. Compare against this page. Don't compare against anything the repo handed you - a repo that's been tampered with will cheerfully tell you its own hash.
| Repo | Root | Fingerprint (sha256) |
|---|---|---|
| Sandcastle Base | version 2, since 2026-10-03 | 5bc141cbfa3b8a9115ebfc4efa81e2e9e8d7bb34894db7b44592b0b6fe532959 |
| Sandcastle Common | version 2, since 2026-10-03 | dc28d9d45e9581837264b33ddf36d8899800c95af796cc3585c287560abeed42 |
| Sandcastle Base | version 3, since 2026-10-12 | 8932a96c368bb5bef9c3ebd8045f88d3bbc29284b0fbea69fb4e1998e2516474 |
| Sandcastle Common | version 3, since 2026-10-12 | 065a1092f2df4c0a6bd8c585d97ba6369856bf02309011bedbfb1c6e7e31a93f |
A system installed before 2026-10-12 is anchored on version 2, and walks forward to version 3 by itself. Up to version 2 one offline root key covered both repos; since version 3 each repo has its own:
| Repo | Root key (keyid) |
|---|---|
| Sandcastle Base | bf94c2341aafa0846752ea0a165bc07f24c5203b8bd02d62507f7fa7cb634935 |
| Sandcastle Common | 6a5eed5448fc9fe1924276996a915332116072295de0710faaefda585fa79571 |
The manifest signing keys
| Repo | Manifest signing key | Signs |
|---|---|---|
| Base | 36558dbbdc9ca7cf7b98b0a25cf96fa97725460cead87ac91b0672c24e5a7c85 |
packages built since 2026-10-03 |
| Common | 6ba4ca26d3aec2e6265ca592764c93c54ac1f34932cac9da257c986d53ab3c91 |
packages built since 2026-10-03 |
The clerks rotate every six months. The keys that signed older packages, and the older roots, are still good for whatever they signed at the time - those are all in the guide.
The image signing key
Signs the image.json of every image on the
download page.
| keyid | Ed25519 public key |
|---|---|
a7febba87f2fc095 |
d9b4efe6e849e6226cec019fd4f69292e62c1a2fe414b82d62e22cfcdc882044 |
When it doesn't match
Stop. Don't add that repo, and don't upgrade from it. Then tell me, and
include the output of sudo pkg repo list --trust.
Contact
For security issues, please contact me at security@ at this domain name.