This document explains how to verify the integrity and authenticity of the binaries published in GitHub Releases.
These steps are designed to match exactly how releases are produced by the current release.yml workflow.
For every tagged release (vX.Y.Z), the GitHub Release contains:
seedctl-<VERSION>-linux-x86_64— Linux binaryseedctl-<VERSION>-windows-x86_64.exe— Windows binarySHA256SUMS— SHA-256 checksums for all binariesSHA256SUMS.asc— GPG signature ofSHA256SUMS
The tag name is derived from Cargo.toml:
v<version-from-Cargo.toml>
This verification protects against:
- Accidental corruption during download
- Malicious modification of binaries
- Compromised GitHub account or CI artifacts
It does not protect against:
- A compromised signing key
- A malicious maintainer
For stronger guarantees, combine this with reproducible builds (see REPRODUCIBILITY.md).
From the GitHub Releases page, download all the following into the same directory:
seedctl-<VERSION>-linux-x86_64seedctl-<VERSION>-windows-x86_64.exeseedctl-<VERSION>-linux-x86_64.AppImageSHA256SUMSSHA256SUMS.asc
Example:
ls
seedctl-<VERSION>-linux-x86_64
seedctl-<VERSION>-windows-x86_64.exe
seedctl-<VERSION>-linux-x86_64.AppImage
SHA256SUMS
SHA256SUMS.ascImport the maintainer's public GPG key:
gpg --import seedctl-release.pubVerify the key fingerprint matches the one published in the repository README:
gpg --fingerprintVerify that SHA256SUMS was signed by the release key:
gpg --verify SHA256SUMS.asc SHA256SUMSExpected output:
gpg: Good signature from "<Release Signing Key>"
If this step fails, do not trust the binaries.
Verify that the binaries match the published checksums:
sha256sum -c SHA256SUMSExpected output:
seedctl-<VERSION>-linux-x86_64: OK
seedctl-<VERSION>-windows-x86_64.exe: OK
If any file fails verification, discard it immediately.
The release artifacts are built by GitHub Actions using the following guarantees:
-
Builds run on:
ubuntu-latestwindows-latest
-
Rust toolchain:
stable -
Build command:
cargo build --release- Version is extracted directly from
Cargo.toml - The Git tag is created as:
v<version>
SHA256SUMSis generated from the final binariesSHA256SUMS.ascis created by signingSHA256SUMSwith GPG inside CI
To independently verify that the binaries correspond to the source code, see:
REPRODUCIBILITY.md
Reproducibility + cryptographic signatures together provide the strongest guarantees.
✔ GPG verifies who produced the release ✔ SHA-256 verifies what you downloaded ✔ Reproducible builds verify how it was built
Always verify before using this software and prefer an offline, air‑gapped environment when possible.