From f6eb91fd1c18c7d2d742adaa35f7085c3dc92402 Mon Sep 17 00:00:00 2001
From: ZeekA McZeekA <148893598+TheZeekA@users.noreply.github.com>
Date: Sun, 2 Aug 2026 14:47:29 +1200
Subject: [PATCH] Release v1.51: Explorer context menu and update checker
Bumps VERSION, the in-app version string, versioninfo.rc, and the
installer.wxs doc example from 1.50 to 1.51, and adds the Changelog
entry for the two features merged this cycle (Explorer right-click
integration, version display + manual update checker).
---
Changelog.md | 7 +++++++
VERSION | 2 +-
dist/windows/installer.wxs | 2 +-
dist/windows/versioninfo.rc | 6 +++---
src/ZeeCrypt.go | 4 ++--
5 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/Changelog.md b/Changelog.md
index d3d71ec..983591b 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,5 +1,12 @@
> History prior to the ZeeCrypt fork belongs to the original [Picocrypt](https://github.com/Picocrypt/Picocrypt) project. New entries for ZeeCrypt will be added above this note going forward.
+# v1.51 (Released 08/02/2026)
+
+ - ✓ Added Explorer right-click integration: a single "Open with ZeeCrypt" entry for files and folders. The app already auto-detects encrypt vs. decrypt from what's opened, so there's no separate Encrypt/Decrypt entry to guess wrong. Multi-select launches one instance with every selected path passed along.
+ - ✓ Added a version display at the bottom of the window. Clicking it checks the latest GitHub release (only when clicked - no automatic/background network requests) and, if a newer version is available, shows the release notes with an explicit "Update Now" button.
+ - ✓ Updating downloads the new build, verifies its SHA-256 checksum against what's published in the release notes, and aborts if it doesn't match, before replacing the running executable and relaunching.
+
+
# v1.50 (Released 08/02/2026)
- ✓ Security: replaced the header's bare SHA3-512 hash of the encryption key with an HMAC-SHA3-512 of the header (flags, salts, IVs), keyed by an independent password-derived subkey. This authenticates the header against tampering in addition to verifying the password (fixes PCC-001 and PCC-006 from the Picocrypt security audit). This is a breaking format change: v1.50 cannot open volumes from Picocrypt or earlier ZeeCrypt versions.
diff --git a/VERSION b/VERSION
index ec8bede..08369aa 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.50
+1.51
diff --git a/dist/windows/installer.wxs b/dist/windows/installer.wxs
index 43989f2..c030b70 100644
--- a/dist/windows/installer.wxs
+++ b/dist/windows/installer.wxs
@@ -8,7 +8,7 @@
allowed inside an XML comment. Retype the flags with real hyphens
before running this in a shell:
dotnet tool install ‑‑global wix ‑‑version 5.0.2
- wix build dist/windows/installer.wxs -d ExePath=src/ZeeCrypt.exe -d IconPath=images/lock.ico -d ProductVersion=1.50.0.0 -o ZeeCrypt-Installer.msi
+ wix build dist/windows/installer.wxs -d ExePath=src/ZeeCrypt.exe -d IconPath=images/lock.ico -d ProductVersion=1.51.0.0 -o ZeeCrypt-Installer.msi
Pinned to WiX v5: v7 introduced a mandatory "Open Source Maintenance Fee"
EULA that must be accepted before the tool will run at all. Don't bump
diff --git a/dist/windows/versioninfo.rc b/dist/windows/versioninfo.rc
index f2c36a6..e728d04 100644
--- a/dist/windows/versioninfo.rc
+++ b/dist/windows/versioninfo.rc
@@ -1,6 +1,6 @@
1 VERSIONINFO
-FILEVERSION 1,50,0,0
-PRODUCTVERSION 1,50,0,0
+FILEVERSION 1,51,0,0
+PRODUCTVERSION 1,51,0,0
FILEOS 0x40004
FILETYPE 0x1
{
@@ -9,7 +9,7 @@ BLOCK "StringFileInfo"
BLOCK "040904B0"
{
VALUE "CompanyName", "Teddy Jones"
- VALUE "FileVersion", "1.50"
+ VALUE "FileVersion", "1.51"
VALUE "LegalCopyright", "\xA9 Evan Su & contributors, GPLv3"
VALUE "ProductName", "ZeeCrypt"
}
diff --git a/src/ZeeCrypt.go b/src/ZeeCrypt.go
index aee63c4..1d17f08 100644
--- a/src/ZeeCrypt.go
+++ b/src/ZeeCrypt.go
@@ -2,7 +2,7 @@ package main
/*
-ZeeCrypt v1.50 (fork of Picocrypt by Evan Su)
+ZeeCrypt v1.51 (fork of Picocrypt by Evan Su)
Copyright (c) Evan Su
Released under GPL-3.0-only
https://github.com/TheZeekA/ZeeCrypt
@@ -66,7 +66,7 @@ var TRANSPARENT = color.RGBA{0x00, 0x00, 0x00, 0x00}
// Generic variables
var window *giu.MasterWindow
-var version = "v1.50"
+var version = "v1.51"
var dpi float32
var mode string
var working bool