Proves you authored this submission, not just that you hold the token. Made with your
signing key.
How to produce the authorship signature
Run these where your private key lives — the Store never sees it. Replace the
highlighted values with your own.
Your Implementer ID and your archive's URL, SHA-256 and size:
IMPLEMENTER_ID='MPAI0042'
ARCHIVE_URL='https://you.example/aims/pkg.zip'
ARCHIVE_SHA256='paste-the-64-character-sha256-here'
The SHA-256 of the metadata file you are submitting — Linux or WSL:
MSHA=$(printf '%s' "$(jq -cSa . your_aim.json)" | sha256sum | cut -d' ' -f1)
macOS:
MSHA=$(printf '%s' "$(jq -cSa . your_aim.json)" | shasum -a 256 | cut -d' ' -f1)
Build the manifest:
jq -cSa -n --arg i "$IMPLEMENTER_ID" --arg m "$MSHA" --arg u "$ARCHIVE_URL" --arg h "$ARCHIVE_SHA256" --argjson s "$ARCHIVE_SIZE" '{_type:"mpai-submission",spec_version:"2.0",implementer_id:$i,metadata_sha256:$m,artifact:{download_url:$u,sha256:($h|ascii_downcase),size:$s}}' | tr -d '\n' > manifest.json
Sign it with your private key:
openssl pkeyutl -sign -inkey mpai_key.pem -rawin -in manifest.json -out sub.sig
Print the signature, and paste it into the Authorship signature field:
xxd -p -c 256 sub.sig | tr -d '\n'
Needs OpenSSL 3.0 or later (check with openssl version). The
openssl built into macOS is LibreSSL, which cannot do this; install OpenSSL 3, for example
with brew install openssl@3. Keep the a in jq -cSa: without it,
any non-ASCII character changes the bytes and the signature will not match.