MINISIGN(1)

πŸ“¦
version 0.12 Β· 2 versions
, in alpine 3.24, arch rolling, epel 10, epel 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ’– minisign β€” the MINISIGN(1) manual, but make it group chat πŸ’–

Okay bestie, welcome to the manual page for minisign β€” the dead simple tool to sign files and verify signatures. We’re gonna go through the whole thing, no skips, no cap. πŸ’…

✨ NAME ✨

  • minisign β€” a dead simple tool to sign files and verify signatures. That’s her whole brand, and honestly? Highkey iconic. πŸ’–

πŸ¦‹ SYNOPSIS πŸ¦‹

Here’s the exact command-shape tea, bestie β€” keep these literal, because this is giving full command-line main character energy:

minisign -G [-p pubkey_file] [-s seckey_file] [-W]

minisign -R [-s seckey_file] [-p pubkey_file]

minisign -C [-s seckey_file] [-W]

minisign -S [-H] [-x sig_file] [-s seckey_file] [-c untrusted_comment]
[-t trusted_comment] -m file [file ...]

minisign -V [-x sig_file] [-p pubkey_file | -P pubkey] [-o] [-q] -m file

πŸ’… DESCRIPTION πŸ’…

Minisign is a dead simple tool to sign files and verify signatures.

It’s portable, lightweight, and uses the highly secure Ed25519 http://ed25519.cr.yp.to/ public-key signature system. Slay. πŸ”₯

πŸŽ€ OPTIONS πŸŽ€

Okay so these options control the actions of minisign. One bullet per flag, no skipping, periodt. πŸ’…

  • -G β€” generate a new key pair. New keys, new era. ✨
  • -C β€” change/remove the password of a secret key. Password glow-up or password removal, your call. πŸ”
  • -R β€” recreate a public key file from a secret key file. Turn that secret into a public moment. πŸ¦‹
  • -S β€” sign files. Main character energy: your file, but signed. πŸ–ŠοΈ
  • -V β€” verify that a signature is valid for a given file. Vibe check the signature. βœ…
  • -H β€” requires the input to be prehashed. Prehash era, no cap. 🧚
  • -l β€” sign using the legacy format. Old-school but valid. πŸŽ€
  • -m <file> β€” file to sign/verify. This is the file in question, bestie. πŸ“
  • -o β€” combined with -V, output the file content after verification. Verify first, then serve the content. πŸ“
  • -p <pubkey_file> β€” public key file (default: ./minisign.pub). That’s the default path, fr fr. πŸ”‘
  • -P <pubkey> β€” public key, as a base64 string. Inline key moment. πŸ’…
  • -s <seckey_file> β€” secret key file (default: ~/.minisign/minisign.key). Guard it like your group chat. πŸ™ˆ
  • -W β€” do not encrypt/decrypt the secret key with a password. No password in the mix. πŸš«πŸ”
  • -x <sig_file> β€” signature file (default: <file>.minisig). The sig’s home base. πŸ“
  • -c <comment> β€” add a one-line untrusted comment. Untrusted but cute. πŸ’¬
  • -t <comment> β€” add a one-line trusted comment. Trusted comment, main character. πŸ‘‘
  • -q β€” quiet mode, suppress output. Shhh, she’s being quiet. 🀫
  • -Q β€” pretty quiet mode, only print the trusted comment. The β€œjust the trusted comment, ma’am” mode. πŸ’–
  • -f β€” force. Combined with -G, overwrite a previous key pair. Force = overwrite energy. ⚠️
  • -v β€” display version number. Version check, slay. 🏷️

🌸 EXAMPLES 🌸

Okay, real-world scenarios, bestie. These are verbatim, so don’t retype them with β€œfixes” β€” copy exactly. πŸ’…

πŸŽ€ Creating a key pair πŸŽ€

Run:

minisign -G

The public key is printed and put into the minisign.pub file. The secret key is encrypted and saved as a file named ~/.minisign/minisign.key. She’s locked up and ready. πŸ”

πŸ–ŠοΈ Signing files πŸ–ŠοΈ

Here’s the line exactly as the manual gives it β€” yes, both commands are chilling on the same line, iykyk:

$ minisign -Sm myfile.txt $ minisign -Sm myfile.txt myfile2.txt *.c

Or to include a comment in the signature, that will be verified and displayed when verifying the file:

$ minisign -Sm myfile.txt -t Β΄This comment will be signed as wellΒ΄

The secret key is loaded from ${MINISIGN_CONFIG_DIR}/minisign.key, ~/.minisign/minisign.key, or its path can be explicitly set with the -s <path> command-line switch. Periodt. ✨

βœ… Verifying a file βœ…

Run:

$ minisign -Vm myfile.txt -P <pubkey>

or

$ minisign -Vm myfile.txt -p signature.pub

This requires the signature myfile.txt.minisig to be present in the same directory. Don’t forget it. 😭

The public key can either reside in a file (./minisign.pub by default) or be directly specified on the command line. Either way, verify and slay. πŸ¦‹

🧚 Notes 🧚

Okay, important lil notes, no cap:

Signature files include an untrusted comment line that can be freely modified, even after signature creation. So that line is literally not locked. πŸ’¬

They also include a second comment line, that cannot be modified without the secret key. That one is protected, bestie. πŸ”

Trusted comments can be used to add instructions or application-specific metadata (intended file name, timestamps, resource identifiers, version numbers to prevent downgrade attacks). Very main character metadata energy. πŸ‘‘ Not me being obsessed with downgrade-attack prevention. πŸ™ˆ

πŸ‘‘ AUTHOR πŸ‘‘

Frank Denis (github [at] pureftpd [dot] org). Shoutout to the author, ngl. πŸ’–


That’s the whole manual, bestie β€” MINISIGN(1), dated January 2023. Now go sign something iconic! πŸ’…βœ¨πŸ«Ά