Every file on the release is signed. You can check that one came from our build pipeline without trusting us — the proof is in a public transparency log, not on a server we control.
Each artifact ships beside a .sigstore.json of the same name. You need
both. There are 94 files on the release — 47 payload files, each
paired 1:1 with its own bundle.
gh release download v1.0.10 --repo uniQ-Ventures/armore-edge-public \ --pattern 'armore-darwin-arm64' \ --pattern 'armore-darwin-arm64.sigstore.json'
Or download both from the release page in a browser.
cosign verify-blob \
--bundle armore-darwin-arm64.sigstore.json \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp '^https://github.com/uniQ-Ventures/' \
armore-darwin-arm64
Verified OK
That checks three things at once: the bytes you hold match the digest that was signed, the signature was made by a certificate issued to a GitHub Actions workflow in our organisation, and the whole thing is recorded in a public log you can inspect independently.
armore-edge-public, but they are signed by the
release workflow in armore-edge-internal. The certificate says so:
# the identity on the signing certificate
https://github.com/uniQ-Ventures/armore-edge-internal/.github/workflows/release.yml@refs/heads/integration/v2.0
So if you tighten the identity above to armore-edge-public — the
natural thing to do — verification fails with “none of the expected identities
matched”, on a perfectly good file. That is a false alarm, not a compromised
download. Pin to armore-edge-internal if you want a narrower check
than the organisation-wide one above.
“Verified OK” on its own proves nothing — a verifier that always passed would print it too. Change one byte and run it again:
cp armore-darwin-arm64 tampered
printf '\x00' >> tampered
cosign verify-blob --bundle armore-darwin-arm64.sigstore.json \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp '^https://github.com/uniQ-Ventures/' \
tampered
Error: error verifying bundle: matching bundle to payload:
bundle ="1d14d00d74648c6e95f4e14c30c0ced163f3cf99dc2023e7144023a2003bff4a"
payload="177f4d1c832f4fdd49368b06b971d97da413d17943c00f7e845510e3af3a4a4a"
One appended byte, and it refuses. Now the pass in step 2 means something — and that is the same reasoning we would like you to apply to everything else we say.
Stated here so you do not spend time concluding something is broken.
gh attestation verify returns 404gh attestation verify armore-darwin-arm64 --repo uniQ-Ventures/armore-edge-public
Error: HTTP 404: Not Found
(…/attestations/sha256:1d14d00d…bff4a?predicate_type=https://slsa.dev/provenance/v1)
cosign verify-blob is the check for these files.
sha512 in a manifest names a different filelatest-mac.yml / latest.yml / latest-linux.yml,
the sha512 at the top of the file is not the one for the
artifact you downloaded. Match your own filename inside the files:
list and use that entry’s hash.
Every installer’s SHA-512 is named in a signed manifest beside it, so you can compare bytes with tooling you already have:
BASE=https://github.com/uniQ-Ventures/armore-edge-public/releases/download/v1.0.10
curl -fLO "$BASE/latest-mac.yml" # or latest.yml (Windows) / latest-linux.yml
openssl dgst -sha512 -binary <your-file> | openssl base64 -A; echo
grep -A2 <your-filename> latest-mac.yml
CycloneDX SBOMs, one per component, each with its own Sigstore bundle. They list what is inside the thing you are about to install — you can read them before you run anything.
Verified OK — and the two ways it can
fail both fail. Run against the released binary on 15 October 2026.
Verified OK,
exit 0.
armore-edge-public, the mistake this
page warns about — fails, exit 1, and the certificate it reports is
the one printed above, verbatim:
…/armore-edge-internal/.github/workflows/release.yml@refs/heads/integration/v2.0.
A perfectly good file, refused.
1, on a
digest mismatch rather than a signature error. The bundle is bound to the
bytes, so changing them breaks the binding before the signature is ever reached.