Important
Cryptographic Trust & Release Integrity Requirement
WireFox uses a strict SHA-256 cryptographic trust model. All installer scripts (install.ps1), in-app self-updaters (UpdateService.cs), and external auditors (verify.ps1) verify that the downloaded executable matches the cryptographic hash published on GitHub.
If you upload a binary without its matching SHA256SUMS.txt or if you re-compile the executable after creating the release, users will receive a CHECKSUM MISMATCH warning and updates will abort.
Always use the automated release script (release.ps1) or follow the manual checklist below.
Run the release script in PowerShell, providing the desired version:
.\release.ps1 -Version "1.1.0"- Updates
<Version>1.1.0</Version>inWireFox.csproj. - Compiles the single-file self-contained release:
publish\WireFox.exe. - Computes the SHA-256 hash.
- Generates
publish\SHA256SUMS.txtandpublish\WireFox.exe.sha256. - Commits
WireFox.csprojand creates a Git tag:git tag v1.1.0. - Prints the exact markdown table to copy/paste into your GitHub Release notes.
After running release.ps1:
git push origin HEAD --tags- Navigate to:
https://github.com/TalviFox/WireFox/releases/new - Select the tag you just created (e.g.,
v1.1.0). - Set the Release Title:
WireFox v1.1.0. - Paste the checksum block generated by
release.ps1:## 🔒 Checksums & Binary Verification | File | SHA-256 Checksum | | :--- | :--- | | **WireFox.exe** | `<hash-printed-by-release.ps1>` | Verify integrity before running (PowerShell): ```powershell irm https://raw.githubusercontent.com/TalviFox/WireFox/main/verify.ps1 | iex
- CRITICAL: Attach the following 2 files from
publish/as release assets:publish\WireFox.exepublish\SHA256SUMS.txt
- Click Publish release.
If release.ps1 cannot be run for any reason, follow these exact manual steps:
-
Bump Version: In WireFox.csproj, edit:
<Version>1.1.0</Version>
-
Build Single-File Executable:
dotnet publish WireFox.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o publish/
-
Compute SHA-256 Hash:
$hash = (Get-FileHash publish\WireFox.exe -Algorithm SHA256).Hash.ToLowerInvariant() Set-Content -Path publish\SHA256SUMS.txt -Value "$hash WireFox.exe" Write-Host "SHA-256: $hash"
-
Commit and Tag:
git commit -am "Release v1.1.0" git tag -a "v1.1.0" -m "WireFox Release v1.1.0" git push origin HEAD --tags
-
Upload Assets to GitHub: Upload both
publish\WireFox.exeandpublish\SHA256SUMS.txtto the release.
graph TD
A["Maintainer runs release.ps1"] --> B["Builds publish/WireFox.exe"]
B --> C["Computes SHA-256"]
C --> D["Outputs SHA256SUMS.txt"]
D --> E["GitHub Release Assets"]
E --> F["install.ps1 (Checks hash before installing)"]
E --> G["UpdateService.cs (In-app update checks hash)"]
E --> H["verify.ps1 (On-the-fly external audit)"]
- Installer:
irm https://raw.githubusercontent.com/TalviFox/WireFox/main/install.ps1 | iex - Auditor:
irm https://raw.githubusercontent.com/TalviFox/WireFox/main/verify.ps1 | iex - Uninstaller:
irm https://raw.githubusercontent.com/TalviFox/WireFox/main/uninstall.ps1 | iex - In-App: Settings > Updates & Binary Integrity > Click Check for Updates or External Hash Audit