Verify a release
Alongside the binary tarballs, each release ships SHA256SUMS (the manifest) and SHA256SUMS.sig (its Ed25519 signature). All artifacts, plus the signing key, are attached to each GitHub release; /public/ indexes the releases and the machine-readable manifest.
Already running magus? Use the built-in verifier:
magus self update --dry-run
The trust chain runs through your already-trusted binary. Nothing else to do.
First install - verify by hand. Do not verify a fresh magus with itself: a tampered build carries the attacker's key and self-reports success. Use OpenSSL with the key served from this HTTPS page.
-
Save the key. Either download magus-release.pem, or copy the PEM block below into
magus-release.pem. -
Verify the manifest signature (requires OpenSSL 3.0+):
openssl pkeyutl -verify -pubin -inkey magus-release.pem \ -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig # Signature Verified Successfully -
Only if the signature verifies, check the artifact hash:
sha256sum -c SHA256SUMS 2>/dev/null | grep magus_ # macOS: shasum -a 256 -c SHA256SUMS
Order matters. Checking a hash against an unverified manifest proves nothing.
Release signing key (Ed25519)
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA/7uPpvNidN79EoiAk8ajIsJTK8VFAW9JWrSVXey2Z3k=
-----END PUBLIC KEY-----
Raw base64 (32 bytes):
/7uPpvNidN79EoiAk8ajIsJTK8VFAW9JWrSVXey2Z3k=
The key is embedded in every magus binary via //go:embed, so magus self update trusts it transitively. A planned rotation first ships a release signed by the current key that embeds the replacement key; later releases can use the replacement. Older binaries cannot be remotely revoked if the current key is compromised. The maintainer procedure is in the contributing guide.