Verifying releases
Every copy of C5 is checked before it runs. This page explains how, and what to do if a check ever fails.
The problem this solves #
Software gets downloaded over networks you do not control. Somewhere between the publisher and your computer, a file could be swapped or altered.
You want to know that the program you are about to run is exactly the one Growther.ai built — not a modified copy.
Two checks #
A fingerprint #
Every release is published with a SHA-256 — a short string calculated from the file's contents. Change even one byte and the string changes completely.
When you install or update, C5 calculates the fingerprint of what it just downloaded and compares it to the published one. If they differ, the install stops and nothing is written.
A signature #
Every release also ships with a signed build manifest — a small record of how the build was made, stamped in a way only Growther.ai can produce. Growther.ai holds a private key; the stamp can be checked by anyone but created by no one else. So a valid stamp proves the build came from Growther.ai and has not been altered since.
Where the checking happens #
| When | What is checked |
|---|---|
| Installing | The SHA-256 of the download. A mismatch stops the install. |
| Updating | The signature and the file's hash, before anything replaces your copy. |
| On demand | growther doctor checks the signature and the program file. |
The first two happen on their own — you do not have to do anything. Together they mean a tampered file cannot get onto your machine through the installer or the updater.
Tip To confirm at any point that the copy on disk is still the one that was installed, run
growther doctor. Its integrity check is exactly for this, and it is worth running
after anything unusual — a crash during an update, a restore from backup, or a machine
someone else has had access to.
Checking for yourself #
To check one specific file — the copy you are running, or something you just downloaded — use:
growther verify # the copy of C5 you are running
growther verify ./growther # a file you downloadedThis works offline. Nothing is sent anywhere and there is nothing to download first: the key used to check the signature is built into C5 itself. See Commands for what each answer means.
A ? answer is not a pass — it means the check could not be completed. Treat it as "unknown", not "fine".
For a broader checkup of your whole setup, including the same integrity check alongside licensing and storage:
growther doctorSee Running doctor.
If a check fails #
Danger A failed integrity check means the program on disk is not the one Growther.ai signed. Do not ignore it and do not work around it.
What to do:
- Stop using that copy.
- Reinstall from the official installer — see Installation.
- If it fails again, ask for help before running it. See Getting help.
Most real-world causes are dull — a download that got truncated, a disk error, an antivirus tool that modified the file. But the check cannot tell dull from serious, so it treats every failure the same way. That is the correct behavior.
Where releases come from #
Published releases and their fingerprints live in the public release repository. Every version is listed with its digest, so you can check any file by hand if you want to.
