← Back to the developers overview
Signing a package
Ed25519 key, SHA-256 checksum and what exactly is verified.
Every package is signed by its developer with their own Ed25519 key. Tobto.shop keeps only your public key, bound to your company — a package signed with someone else’s key does not pass.
- Generate a key pair: openssl genpkey -algorithm ed25519 -out private-key.pem, then openssl pkey -in private-key.pem -pubout -out public-key.pem.
- Send support only public-key.pem and the key name (key_id). Never share the private key or commit it to a repository.
- Sign every build with the packager: it computes the SHA-256 of the final ZIP and signs it.
The publication JSON gains two fields:
"package_checksum": "<lowercase sha256 of the ZIP, 64 characters>",
"signature": {"algorithm": "Ed25519", "key_id": "my-key-id", "value": "<base64url without =, 86 characters>"} - key_id is enrolled for your company and allowed for the declared trust_level.
- The SHA-256 of the uploaded ZIP equals package_checksum.
- The publication JSON (without signature and checksum) equals extension.json, theme.json or language-pack.json inside the archive.
- Code, version and compatibility in the submission form match the manifest.
Any change to the archive after signing — even repacking the same files — changes the SHA-256 and invalidates the signature. Build and sign once, submit exactly that ZIP.