From 9bdfa72f032c9c8f29affabf850d23b1591f7f98 Mon Sep 17 00:00:00 2001 From: gabrix73 Date: Sun, 31 May 2026 03:13:09 +0200 Subject: Add vim-yubisigner wrapper and installation instructions - Add scripts/vim-yubisigner (editor wrapper for YubiKey signing) - Update README with complete installation steps for yubisigner-cli - Include code blocks for building and installing wrapper --- scripts/vim-yubisigner | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 scripts/vim-yubisigner (limited to 'scripts') diff --git a/scripts/vim-yubisigner b/scripts/vim-yubisigner new file mode 100755 index 0000000..45d1c3d --- /dev/null +++ b/scripts/vim-yubisigner @@ -0,0 +1,65 @@ +#!/bin/bash +# Vim wrapper that auto-signs with yubisigner-cli after editing +# Used by NeoMutt mail2news account +# Creates PGP-like clearsign format with yubisigner signature + +set -euo pipefail + +# First argument is the file to edit +FILE="$1" + +# Open vim for editing +vim "$FILE" + +# Save original message +ORIGINAL_MSG=$(cat "$FILE") + +# After vim exits, sign the message +echo "" +echo "Signing message with YubiKey..." + +# Kill gpg-agent to release YubiKey (it will auto-restart later) +echo "Releasing YubiKey from gpg-agent..." +gpgconf --kill gpg-agent 2>/dev/null || true +sleep 1 + +# Sign with yubisigner-cli (PIN will be prompted) +if ! "$HOME/bin/yubisigner-cli/yubisigner-cli" \ + --input "$FILE" \ + --author "Gab Virebent" \ + --email "gabriel1@virebent.art" \ + --url "https://contact.virebent.art" \ + --comment "Posted via NeoMutt mail2news"; then + echo "" + echo "ERROR: yubisigner-cli failed!" + echo "Press ENTER to continue WITHOUT signature..." + read + exit 0 +fi + +# Check if signature was created +if [ ! -f "$FILE.sig" ]; then + echo "" + echo "ERROR: Signature file not created!" + echo "Press ENTER to continue WITHOUT signature..." + read + exit 0 +fi + +# Create clearsign format (like PGP clearsign but with yubisigner signature) +{ + echo "-----BEGIN YUBISIGNER SIGNED MESSAGE-----" + echo "Hash: SHA256" + echo "" + echo "$ORIGINAL_MSG" + echo "" + cat "$FILE.sig" +} > "$FILE.tmp" + +# Replace original file with clearsign version +mv "$FILE.tmp" "$FILE" + +# Cleanup +rm -f "$FILE.sig" + +echo "Message signed successfully" -- cgit v1.2.3