Zurück zum Ranking

A dead simple tool to sign files and verify digital signatures.

cryptographycryptosignaturesed25519pgpgpgzig-package
Sterne-Wachstum
Sterne
2.8k
Forks
151
Wochenwachstum
Issues
0
1k2k
Juni 2015Feb. 2019Nov. 2022Juli 2026
README

Minisign

CodeQL scan Release

A dead simple tool to sign files and verify signatures.

Table of Contents

Overview

Minisign is a tool to sign files and verify signatures. It's designed to be:

  • Simple to use
  • Secure (based on modern cryptography)
  • Minimal (focused on doing one thing well)
  • Cross-platform

Minisign uses the Ed25519 public-key signature system with small and fast signatures.

Documentation

For comprehensive documentation, please refer to the Minisign documentation website or the included man page.

Installation

Prebuilt Packages

Minisign is available in various package managers:

Platform Command
macOS (Homebrew) brew install minisign
Windows (Scoop) scoop install minisign
Windows (Chocolatey) choco install minisign

Building with Zig

Dependencies:

Compilation options:

  1. With libsodium, dynamically linked:
zig build -Doptimize=ReleaseSmall
  1. With libsodium, statically linked:
zig build -Doptimize=ReleaseSmall -Dstatic
  1. Without libsodium (no dependencies required):
zig build -Doptimize=ReleaseSmall -Dwithout-libsodium

The resulting binary can be found in zig-out/bin/minisign.

For faster execution at the cost of larger binary size, you can replace ReleaseSmall with ReleaseFast in any of the above commands.

Building with CMake and GCC or Clang

Dependencies:

  • libsodium (required)
  • CMake
  • pkg-config
  • GCC or Clang

Compilation:

mkdir build
cd build
cmake ..
make
make install  # with appropriate permissions

Alternative configuration for static binaries:

cmake -D STATIC_LIBSODIUM=1 ..

or:

cmake -D BUILD_STATIC_EXECUTABLES=1 ..

Usage

Generating a Key Pair

minisign -G

This creates:

  • A public key (minisign.pub by default)
  • A password-protected secret key (minisign.key by default)

Signing Files

minisign -S -m file.txt

This creates a signature file named file.txt.minisig.

To add a trusted comment that will be verified:

minisign -S -m file.txt -t "Trusted comment here"

Verifying Signatures

minisign -Vm file.txt -p minisign.pub

or with a public key directly:

minisign -Vm file.txt -P RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3

Verification of Official Releases

Tarballs and precompiled binaries from the project can be verified with the following public key:

RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3

Docker

Minisign is available as a Docker image:

docker run -i --rm jedisct1/minisign

Example of generating a key for the first time and then signing a local file:

docker run -i --rm -v .:/minisign jedisct1/minisign \
  -s minisign.key -G
docker run -i --rm -v .:/minisign jedisct1/minisign \
  -s minisign.key -S -m files_to_sign

-s minisign.key creates and uses the secret key; the public key will be named minisign.pub.

Important: create a backup and do not commit or share your generated private key file minisign.key.

Example of verifying a signature using the Docker image:

docker run -i --rm -v .:/minisign jedisct1/minisign \
  -Vm file_to_verify -p minisign.pub

-p minisign.pub may be omitted if the default name has been generated.

The image can be verified with the following cosign public key:

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExjZWrlc6c58W7ZzmQnx6mugty99C
OQTDtJeciX9LF9hEbs1J1fzZHRdRhV4OTqcq0jTW9PXnrSSZlk1fbkE/5w==
-----END PUBLIC KEY-----

Compatibility with Signify

Minisign is compatible with signify, the OpenBSD signing tool. Signatures created with signify can be verified with minisign, and vice versa.

Signature Determinism

This implementation uses deterministic signatures, unless libsodium was compiled with the ED25519_NONDETERMINISTIC macro defined. This adds random noise to the computation of EdDSA nonces.

Other implementations can choose to use non-deterministic signatures by default. They will remain fully interoperable with implementations using deterministic signatures.

Additional Tools, Libraries and Implementations

minizign is now the recommended implementation. This is where new features are going to be implemented.

Other tools and libraries:

Ähnliche Repositories
bitcoin/bitcoin

Bitcoin Core integration/staging tree

C++MIT Licensebitcoinc-plus-plus
bitcoincore.org/en/download
89.7k39.1k
TheAlgorithms/JavaScript

Algorithms and Data Structures implemented in JavaScript for beginners, following best practices.

JavaScriptnpmGNU General Public License v3.0algorithmalgorithm-challenges
the-algorithms.com/language/javascript
34.2k5.9k
anoma/anoma

Reference implementation of Anoma

ElixirMIT Licensecryptographyblockchain
anoma.net
33.7k4.1k
openssl/openssl

General purpose TLS and crypto library

CApache License 2.0cryptographyopenssl
openssl-library.org
30.5k11.4k
bee-san/Ciphey

⚡ Automatically decrypt encryptions without knowing the key or cipher, decode encodings, and crack hashes ⚡

Rustcrates.ioMIT Licensedecryptionnatural-language-processing
21.5k1.4k
amark/gun

An open source cybersecurity protocol for syncing decentralized graph data.

JavaScriptnpmOthermachine-learningartificial-intelligence
gun.eco/docs
19.1k1.2k
Ciphey/Ciphey

⚡ Automatically decrypt encryptions without knowing the key or cipher, decode encodings, and crack hashes ⚡

PythonPyPIMIT Licensedecryptionnatural-language-processing
18.8k1.2k
javascript-obfuscator/javascript-obfuscator

A powerful obfuscator for JavaScript and Node.js

TypeScriptnpmBSD 2-Clause "Simplified" Licensejavascript-obfuscatorobfuscation
obfuscator.io
16.2k1.7k
cryptomator/cryptomator

Cryptomator for Windows, macOS, and Linux: Secure client-side encryption for your cloud storage, ensuring privacy and control over your data.

JavaMavenGNU General Public License v3.0cryptomatorjava
cryptomator.org
15.7k1.4k
zama-ai/bounty-program

Zama Bounty Program: Contribute to the FHE space and Zama's open source libraries and get rewarded 💰

bounty-programcryptography
zama.ai
15.3k439
jedisct1/libsodium

A modern, portable, easy to use crypto library.

COthercryptocryptography
libsodium.org
13.8k1.9k
tink-crypto/tink

Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

JavaMavenApache License 2.0cryptographyjava
developers.google.com/tink
13.5k1.2k