diff --git a/.github/workflows/pr-test-build-linux.yml b/.github/workflows/pr-test-build-linux.yml
deleted file mode 100644
index 2542dcd..0000000
--- a/.github/workflows/pr-test-build-linux.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-name: pr-test-build-linux
-
-permissions:
- contents: write
-
-on:
- pull_request:
- branches:
- - main
-
-jobs:
- pr-test-build-linux:
- runs-on: ubuntu-24.04
- steps:
- - uses: actions/checkout@v4
-
- - name: Setup Go
- uses: actions/setup-go@v5
- with:
- go-version: '>=1.24'
- check-latest: true
- cache: false
-
- - name: Install packages
- run: |
- sudo apt install -y gcc xorg-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa wget
-
- - name: Install dependencies
- run: |
- cd src
- go mod download
-
- - name: Build
- run: |
- cd src
- go build -v -ldflags="-s -w" -o Picocrypt Picocrypt.go
- env:
- CGO_ENABLED: 1
- GOAMD64: v1
-
- - name: Package as .deb
- run: |
- wget https://github.com/user-attachments/files/16136712/Picocrypt.zip
- python -m zipfile -e Picocrypt.zip Picocrypt
- cp src/Picocrypt Picocrypt/Picocrypt/usr/bin/picocrypt-gui
- VERSION=$(cat VERSION)
- echo "VERSION=$VERSION" >> $GITHUB_ENV
- echo "Version: $VERSION" >> Picocrypt/Picocrypt/DEBIAN/control
- echo "Version=$VERSION" >> Picocrypt/Picocrypt/usr/share/applications/picocrypt.desktop
- cd Picocrypt
- dpkg-deb -Zxz --build --root-owner-group Picocrypt
-
- - name: Prepare to upload artifacts
- run: |
- mkdir out
- mv src/Picocrypt out
- mv Picocrypt/Picocrypt.deb out
- rm -rf src
- rm -rf Picocrypt
- mv out/Picocrypt .
- mv out/Picocrypt.deb .
-
- - name: Upload artifacts
- uses: actions/upload-artifact@v4
- with:
- name: pr-test-build-linux-ONLY-FOR-TESTING
- path: |
- Picocrypt
- Picocrypt.deb
- if-no-files-found: error
- compression-level: 9
diff --git a/.github/workflows/pr-test-build-macos.yml b/.github/workflows/pr-test-build-macos.yml
deleted file mode 100644
index 8591c76..0000000
--- a/.github/workflows/pr-test-build-macos.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-name: pr-test-build-macos
-
-permissions:
- contents: write
-
-on:
- pull_request:
- branches:
- - main
-
-jobs:
- pr-test-build-macos:
- runs-on: macos-15
- steps:
- - uses: actions/checkout@v4
-
- - name: Setup Go
- uses: actions/setup-go@v5
- with:
- go-version: '>=1.24'
- check-latest: true
- cache: false
-
- - name: Install packages
- run: |
- brew install glfw glew
-
- - name: Install dependencies
- run: |
- cd src
- go mod download
-
- - name: Build
- run: |
- cd src
- go build -v -ldflags="-s -w" -o Picocrypt Picocrypt.go
- env:
- CGO_ENABLED: 1
-
- - name: Package as .app in a .dmg
- run: |
- mv dist/macos/Picocrypt.app.zip .
- unzip -d Picocrypt.app Picocrypt.app.zip
- rm Picocrypt.app.zip
- mv src/Picocrypt Picocrypt.app/Contents/MacOS/Picocrypt
- mkdir out
- cp -R Picocrypt.app out
- hdiutil create Picocrypt.dmg -volname Picocrypt -fs APFS -format UDZO -srcfolder out
-
- - name: Upload artifacts
- uses: actions/upload-artifact@v4
- with:
- name: pr-test-build-macos-ONLY-FOR-TESTING
- path: |
- Picocrypt.dmg
- if-no-files-found: error
- compression-level: 9
diff --git a/.github/workflows/pr-test-build-windows.yml b/.github/workflows/pr-test-build-windows.yml
deleted file mode 100644
index 44bb4da..0000000
--- a/.github/workflows/pr-test-build-windows.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-name: pr-test-build-windows
-
-permissions:
- contents: write
-
-on:
- pull_request:
- branches:
- - main
-
-jobs:
- pr-test-build-windows:
- runs-on: windows-2025
- steps:
- - uses: actions/checkout@v4
-
- - name: Setup Go
- uses: actions/setup-go@v5
- with:
- go-version: '>=1.24'
- check-latest: true
- cache: false
-
- - name: Install dependencies
- run: |
- cd src
- go mod download
-
- - name: Build
- run: |
- cd src
- go build -v -ldflags="-s -w -H=windowsgui -extldflags=-static" -o 1.exe Picocrypt.go
- env:
- CGO_ENABLED: 1
- GOAMD64: v1
-
- - name: Add icon, manifest, and version info
- shell: pwsh
- run: |
- Invoke-WebRequest -OutFile reshacker_setup.zip https://github.com/user-attachments/files/18878075/reshacker_setup.zip
- Expand-Archive -DestinationPath reshacker_setup reshacker_setup.zip
- reshacker_setup/reshacker_setup.exe /SILENT
- Start-Sleep -Seconds 60
- Invoke-Expression "& `"$Env:P`" -open src/1.exe -save src/2.exe -action addoverwrite -res images/key.ico -mask `"ICONGROUP,MAINICON,`""
- Start-Sleep -Seconds 30
- Invoke-Expression "& `"$Env:P`" -open src/2.exe -save src/3.exe -action addoverwrite -res images/key.ico -mask `"ICONGROUP,GLFW_ICON,`""
- Start-Sleep -Seconds 30
- Invoke-Expression "& `"$Env:P`" -open src/3.exe -save src/4.exe -action addoverwrite -res dist/windows/manifest.xml -mask `"MANIFEST,1,`""
- Start-Sleep -Seconds 30
- Invoke-Expression "& `"$Env:P`" -open dist/windows/versioninfo.rc -save resources.res -action compile"
- Start-Sleep -Seconds 30
- Invoke-Expression "& `"$Env:P`" -open src/4.exe -save src/5.exe -action addoverwrite -res resources.res"
- Start-Sleep -Seconds 30
- env:
- P: "C:\\Program Files (x86)\\Resource Hacker\\ResourceHacker.exe"
-
- - name: Compress with upx
- shell: pwsh
- run: |
- Invoke-WebRequest -OutFile upx.zip https://github.com/user-attachments/files/15894908/upx-4.2.4-win64.zip
- Expand-Archive -DestinationPath upx upx.zip
- upx/upx-4.2.4-win64/upx.exe --lzma --brute -o src/Picocrypt.exe src/5.exe
-
- - name: Upload artifact
- uses: actions/upload-artifact@v4
- with:
- name: pr-test-build-windows-ONLY-FOR-TESTING
- path: src/*.exe
- if-no-files-found: error
- compression-level: 9
diff --git a/CODEOWNERS b/CODEOWNERS
index caad6a0..54f9775 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1,4 +1,3 @@
.github/workflows/* @HACKERALERT
VERSION @HACKERALERT
CODEOWNERS @HACKERALERT
-src/* @HACKERALERT
diff --git a/Changelog.md b/Changelog.md
index fffc47f..3a088ad 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,8 @@
+# Future
+
+ - Migrate golang.org/x/crypto to standard library imports (https://github.com/golang/go/issues/65269)
+
+
# v1.48 (Released 04/11/2025)
- ✓ Allow pressing 'Enter' key to press Start/Process button
diff --git a/README.md b/README.md
index ecf5b3e..2b15221 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,8 @@ Picocrypt is a very small (hence Pico), very simple, yet very secure encr
## Windows
Picocrypt for Windows is as simple as it gets. To download the latest, standalone, and portable executable for Windows, click here. If Microsoft Defender or your antivirus flags Picocrypt as a virus, please do your part and submit it as a false positive for the betterment of everyone.
+If you use Picocrypt frequently, you can download an installer here for easier launching. It does not require any admin permissions to install and it also bundles a software OpenGL renderer for compatibility, so if the portable executable isn't working, this installer likely will.
+
## macOS
Picocrypt for macOS is very simple as well. Download Picocrypt here, open the container, and drag Picocrypt to your Applications. You may need to manually trust the app from a terminal and control-click on the app if macOS prevents you from opening it:
```
diff --git a/src/Picocrypt.go b/src/Picocrypt.go
index 3587e44..2c2cc0a 100644
--- a/src/Picocrypt.go
+++ b/src/Picocrypt.go
@@ -781,27 +781,21 @@ func draw() {
return "Process"
}()).Size(giu.Auto, 34).OnClick(onClickStartButton),
giu.Custom(func() {
- if mainStatus != "Ready" {
- giu.Style().SetColor(giu.StyleColorText, mainStatusColor).To(
- giu.Label(mainStatus),
- ).Build()
- return
- }
if temporaryZip && externalDst {
giu.Style().SetColor(giu.StyleColorText, YELLOW).To(
giu.Label("Warning: unencrypted temp files will be created"),
).Build()
} else if temporaryZip {
giu.Style().SetColor(giu.StyleColorText, WHITE).To(
- giu.Label("Ready (info: will create a temporary zip file)"),
+ giu.Label(mainStatus + " (info: will create temporary files)"),
).Build()
} else if externalDst {
giu.Style().SetColor(giu.StyleColorText, WHITE).To(
- giu.Label("Ready (info: target may be an external drive)"),
+ giu.Label(mainStatus + " (info: target may be an external drive)"),
).Build()
} else {
giu.Style().SetColor(giu.StyleColorText, mainStatusColor).To(
- giu.Label("Ready"),
+ giu.Label(mainStatus),
).Build()
}
}),
diff --git a/src/go.mod b/src/go.mod
index 0b86bd6..2f30308 100644
--- a/src/go.mod
+++ b/src/go.mod
@@ -1,20 +1,20 @@
module Picocrypt
-go 1.24.2
+go 1.24
require (
- github.com/Picocrypt/dialog v0.0.0-20250410154130-d98dc55ea635
- github.com/Picocrypt/giu v0.0.0-20250410155113-88f8ef80cbaf
- github.com/Picocrypt/imgui-go v0.0.0-20250410154824-2e0c0440a8da
- github.com/Picocrypt/infectious v0.0.0-20250410153626-f2f1c05d0452
+ github.com/Picocrypt/dialog v0.0.0-20240831001746-9ca708a9cd29
+ github.com/Picocrypt/giu v0.0.0-20240831005244-5771b35043ac
+ github.com/Picocrypt/imgui-go v0.0.0-20240831004007-6f60d7beadf6
+ github.com/Picocrypt/infectious v0.0.0-20240830233326-3a050f65f9ec
github.com/Picocrypt/serpent v0.0.0-20240830233833-9ad6ab254fd7
- github.com/Picocrypt/zxcvbn-go v0.0.0-20250410153845-b5da60d3e882
+ github.com/Picocrypt/zxcvbn-go v0.0.0-20240831000415-fccb38ccb913
golang.org/x/crypto v0.37.0
)
require (
- github.com/Picocrypt/gl v0.0.0-20250410154226-55bdd7d785fc // indirect
- github.com/Picocrypt/glfw/v3.3/glfw v0.0.0-20250410154351-5db5bbd64322 // indirect
+ github.com/Picocrypt/gl v0.0.0-20240831002619-6531d2bba5fc // indirect
+ github.com/Picocrypt/glfw/v3.3/glfw v0.0.0-20240831003212-7f16c5fb374b // indirect
github.com/Picocrypt/mainthread v0.0.0-20240831004314-496f638392b3 // indirect
github.com/Picocrypt/w32 v0.0.0-20240831001500-1183079d4d57 // indirect
golang.org/x/sys v0.32.0 // indirect
diff --git a/src/go.sum b/src/go.sum
index 1817016..b6b9df4 100644
--- a/src/go.sum
+++ b/src/go.sum
@@ -1,23 +1,23 @@
-github.com/Picocrypt/dialog v0.0.0-20250410154130-d98dc55ea635 h1:mZl+aiuQSQhe/C1Y4NdJ7w6KdjAEyr5Va2JHGdDvF3E=
-github.com/Picocrypt/dialog v0.0.0-20250410154130-d98dc55ea635/go.mod h1:bScGI7SMxXUo4EtwGfDkeA7owLj99QBn8nlqnqxacHU=
-github.com/Picocrypt/giu v0.0.0-20250410155113-88f8ef80cbaf h1:mDXu/vjyoxcXg44ejbpRhiZg1NmzMlez6ikEkZ03G6c=
-github.com/Picocrypt/giu v0.0.0-20250410155113-88f8ef80cbaf/go.mod h1:fDUYbcghlVwlEoWkp+4LwQd1DJft1XZ9uTaHskd2gno=
-github.com/Picocrypt/gl v0.0.0-20250410154226-55bdd7d785fc h1:PhgkrhrXcMVDJUHfTjJ+U1soq+eiaeWheEELXZau62k=
-github.com/Picocrypt/gl v0.0.0-20250410154226-55bdd7d785fc/go.mod h1:aHUxrywhiLVtrH6Yus/4N9VtOFzsEPp1AJj2ioFgswg=
-github.com/Picocrypt/glfw/v3.3/glfw v0.0.0-20250410154351-5db5bbd64322 h1:eeD6947JcMIeRhlPkXWedfi8IqdZuX/k0dVM8nEB+bc=
-github.com/Picocrypt/glfw/v3.3/glfw v0.0.0-20250410154351-5db5bbd64322/go.mod h1:7StnBznBEzR4cEtV5ptfQfMBgmv05p+b4ImwZ+pXXKQ=
-github.com/Picocrypt/imgui-go v0.0.0-20250410154824-2e0c0440a8da h1:zea0P1s/ykcWU1zbBxVLgCjSwRhT7+u1KoYPQHuStjQ=
-github.com/Picocrypt/imgui-go v0.0.0-20250410154824-2e0c0440a8da/go.mod h1:crmefGfhM5+lQUU/fbS9Hjs8xOlrrJI235vwnktN9PE=
-github.com/Picocrypt/infectious v0.0.0-20250410153626-f2f1c05d0452 h1:9UqCRY4qLDpIfxW+N51JPTn0KDKg88um+BVXApTl0NI=
-github.com/Picocrypt/infectious v0.0.0-20250410153626-f2f1c05d0452/go.mod h1:S99y5mnE1SZcr3n2DNDkdYZ9QJD4OmnGXlQ9TvLLC+M=
+github.com/Picocrypt/dialog v0.0.0-20240831001746-9ca708a9cd29 h1:WIgRST/mpLiBEG2MF5MRPBDYYevLw7y14cwUEDjG5+Q=
+github.com/Picocrypt/dialog v0.0.0-20240831001746-9ca708a9cd29/go.mod h1:raXVkdcX4495+fW9Ac+kvPMHRNk0rOcNXEWFD71B2As=
+github.com/Picocrypt/giu v0.0.0-20240831005244-5771b35043ac h1:Z21enGbi450NyI7UZSoEuu//axifyGl63BJVjHX3ZXc=
+github.com/Picocrypt/giu v0.0.0-20240831005244-5771b35043ac/go.mod h1:x7jbmZVofU9rn5WJj2+riU85Zo0MFlfp1sMTnKFQhc0=
+github.com/Picocrypt/gl v0.0.0-20240831002619-6531d2bba5fc h1:5ckKMFhiz/Af6+sdkGlw74BU+rKRmoFWqU/rXHGUe3g=
+github.com/Picocrypt/gl v0.0.0-20240831002619-6531d2bba5fc/go.mod h1:VknKAZzEoKP9nqrc/dveCwR5L01B9V8yLqtpvYmQ3DA=
+github.com/Picocrypt/glfw/v3.3/glfw v0.0.0-20240831003212-7f16c5fb374b h1:hSaQU4P9KbMg9s2Jp2mTk9G5G+zkf4Yse5YRoxWTDTk=
+github.com/Picocrypt/glfw/v3.3/glfw v0.0.0-20240831003212-7f16c5fb374b/go.mod h1:r5awTCSm/ugmTRKmT8Hr0T4xGPI6K35eFK0s3jYCW+s=
+github.com/Picocrypt/imgui-go v0.0.0-20240831004007-6f60d7beadf6 h1:Y6SuxbSkQSU1hdEOpoMvp6Akq3RVX6KP1U4pKjGv3qo=
+github.com/Picocrypt/imgui-go v0.0.0-20240831004007-6f60d7beadf6/go.mod h1:mGfOCkgyafVMIs1tU70va3lFSh6hSb+Vq4paVLX1Fjg=
+github.com/Picocrypt/infectious v0.0.0-20240830233326-3a050f65f9ec h1:/cop0/v0HxIJm1XGDgIlzNJ3e4HhM8nIUPZi5RZ/n1w=
+github.com/Picocrypt/infectious v0.0.0-20240830233326-3a050f65f9ec/go.mod h1:aaFq/WMVxrU2Exl/tXbTFSXajZrqw0mgn/wi42n0fK4=
github.com/Picocrypt/mainthread v0.0.0-20240831004314-496f638392b3 h1:a62XmbZYhHGDR15C1gxp/IPfJX5SflrJuGpqNoOOK7w=
github.com/Picocrypt/mainthread v0.0.0-20240831004314-496f638392b3/go.mod h1:bsUKeX+/53rCTrItl3YUaeaN5tXl1v6326ZI90xIOsc=
github.com/Picocrypt/serpent v0.0.0-20240830233833-9ad6ab254fd7 h1:G36G2vmQAS7CVoHQrHDGAoCWll/0kPCI8Dk7mgwcJFE=
github.com/Picocrypt/serpent v0.0.0-20240830233833-9ad6ab254fd7/go.mod h1:BxsgRYwUVd92aEwXnXsfXfHw8aHlD/PUyExC/wwk9oI=
github.com/Picocrypt/w32 v0.0.0-20240831001500-1183079d4d57 h1:jusSXTp0h5wz8lxNXStw0jXr/ogZF6rzRF8gu0534hA=
github.com/Picocrypt/w32 v0.0.0-20240831001500-1183079d4d57/go.mod h1:FkeZHdKlITdP34VknO8yLdRY5pCi+iWEhDSA0YsBhZc=
-github.com/Picocrypt/zxcvbn-go v0.0.0-20250410153845-b5da60d3e882 h1:W5f997Hcoi9PiU2j3TSsjryNKQ2+jIiHChpOnf485Xc=
-github.com/Picocrypt/zxcvbn-go v0.0.0-20250410153845-b5da60d3e882/go.mod h1:pIpFJD6Ey6jxU5GXMZ3Kc4wF9B49OJy9wTwwE3bJRPI=
+github.com/Picocrypt/zxcvbn-go v0.0.0-20240831000415-fccb38ccb913 h1:QGv9QiTkNZ2iRmXEd7nNopaUJMBhBdBcsvWPl+v51AY=
+github.com/Picocrypt/zxcvbn-go v0.0.0-20240831000415-fccb38ccb913/go.mod h1:dMyJ/0E4MeBo2wH1ZYmvPTChnYSj2MjLUndvYQt0vGw=
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=