Verify a downloaded release
Checking the checksum, the build-provenance attestation, and the platform signature before you install.
Written By Dustin
Last updated About 5 hours ago
Verify every download before running it. For a tool that will hold your signing and encryption keys, this is not ceremony.
What each release publishes
The order that matters
Verify the build-provenance attestation for the artifact you downloaded. This is the step that proves the bytes came out of the project's own release build, and it binds to the artifact's digest — so a substituted file cannot satisfy it.
Then check the file against its
.sha256sidecar. On its own a checksum only proves the file matches a number published beside it; it is a transfer-integrity check, not a provenance check.Then let the platform signature do its job —
rpm --checksigwith the imported GPG key, Gatekeeper on the.pkg, Authenticode on the.msi.
Doing step 2 alone is the common mistake. A checksum file sitting beside a substituted artifact can be substituted just as easily.
Checking a checksum
sha256sum -c tovio-1.0.0-linux-x86_64.tar.gz.sha256On macOS use shasum -a 256 -c; in PowerShell compare Get-FileHash -Algorithm SHA256 against the digest in the sidecar.
Checking the attestation
The provenance and SBOM attestations are Sigstore bundles produced by the release workflow and published with the release. Verify them with the GitHub CLI's gh attestation verify, pointed at the downloaded file and naming the owning repository. A verified attestation tells you which workflow, at which commit, produced those exact bytes.
If verification fails
Do not install it. Re-download once in case of a truncated transfer. If it fails again, report it to security@tovio.dev rather than on a public board — a genuine signature or attestation failure on a published artifact is a security matter, and the disclosure policy asks that it never start life as a public issue.