The VARI qualification kit is delivered as a tarball with a manifest, and the manifest is signed with the key below. An operator verifies four things before unpacking: that this key's fingerprint matches what is printed here, that the manifest's signature verifies against this key, that the delivered files match SHA256SUMS, and that the tarball matches the signed manifest. If any of the four fails, stop and tell VARI; do not unpack.
-----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEA1Jelw55B9/QaLav+rXUR/3j5ngxuO6iOAiGvgWsyVTA= -----END PUBLIC KEY-----
Run these on the host that will unpack the kit, in the directory holding the four files VARI delivered: vari-kit-v1.tar.gz, MANIFEST.json, MANIFEST.json.sig and SHA256SUMS, plus the key file from this page.
openssl pkey -pubin -in vari-kit-signing.pub.pem -outform DER | sha256sumMust print the fingerprint above.
openssl pkeyutl -verify -pubin -inkey vari-kit-signing.pub.pem -rawin -in MANIFEST.json -sigfile MANIFEST.json.sigMust print Signature Verified Successfully.
sha256sum -c SHA256SUMSEvery line must read OK.
python3 -c "import json,hashlib;m=json.load(open('MANIFEST.json'));h=hashlib.sha256(open(m['tarball']['name'],'rb').read()).hexdigest();print('tarball matches the signed manifest' if h==m['tarball']['sha256'] else 'MISMATCH')"Must print tarball matches the signed manifest. SHA256SUMS is a convenience; the manifest is what the signature covers, so this is the check that binds the tarball to the key.The kit re-checks every file against the signed manifest each time it runs, so a modified file stops the run before anything else happens. The runbook delivered with the kit contains these same four commands; if the two ever differ, this page is wrong and the runbook is right, and we would like to hear about it.