Add cryptographic signature verification to install script#2077
Open
Muktarsadiq wants to merge 1 commit intovolta-cli:mainfrom
Open
Add cryptographic signature verification to install script#2077Muktarsadiq wants to merge 1 commit intovolta-cli:mainfrom
Muktarsadiq wants to merge 1 commit intovolta-cli:mainfrom
Conversation
- Implemented Minisign-based release verification - Added automatic minisign installation for macOS and Linux - Modified download_release_from_repo() to download .minisig files - Added verify_release_signature() function - Added check_minisign() function with auto-installation - Included version checking for backward compatibility (< v2.0.3) - Added comprehensive error messages and user feedback - Created RELEASING.md with maintainer signing instructions Resolves volta-cli#2075
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The install script does not verify release integrity (#2075), leaving users vulnerable to:
Solution
Implemented cryptographic signature verification using Minisign.
Why Minisign?
While the issue mentioned GPG, I chose Minisign because it:
Both GPG and Minisign solve the core security problem: verifying that releases come from legitimate maintainers and haven't been tampered with. Minisign achieves this with a more streamlined, modern approach.
Changes
Modified Files
dev/unix/volta-install.shVolta_PUBLIC_KEYconstant for signature verificationcheck_minisign()function for automatic minisign installationverify_release_signature()function to verify tarball signaturesdownload_release_from_repo()to download.minisigsignature filesinstall_release()to verify signatures before installationNew Files
RELEASING.mdTesting
Since existing releases don't have signatures, I tested locally by:
Test Results
✅ Test 1: Valid Signature
✅ Test 2: Tampered File
✅ Test 3: Missing Signature
✅ Test 4: Minisign Auto-Installation
All tests passed ✅
Backward Compatibility
The implementation includes version detection:
Documentation
For Maintainers
Created comprehensive
RELEASING.mdwith:Questions for Maintainers
Volta_PUBLIC_KEYis from my test key - this needs to be replaced with the official public key once generatedNext Steps (for maintainers)
To enable signature verification:
RELEASING.md)Volta_PUBLIC_KEYindev/unix/volta-install.shwith official public keyRELEASING.mdguideResolves #2075