diff options
| author | Craig Jennings <c@cjennings.net> | 2026-02-05 00:20:37 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-02-05 00:20:37 -0600 |
| commit | 337fd002603dbaeb25a682983f10fe4bb4e3a976 (patch) | |
| tree | 916d20b2693a60a886369c6db9ab8901524268f1 /assets/2026-02-04-gpg-encrypt-decrypt-scripts.md | |
| parent | 314ea2272c0f4ce4631cb2de0f03f6e3c67c1f1b (diff) | |
Diffstat (limited to 'assets/2026-02-04-gpg-encrypt-decrypt-scripts.md')
| -rw-r--r-- | assets/2026-02-04-gpg-encrypt-decrypt-scripts.md | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/assets/2026-02-04-gpg-encrypt-decrypt-scripts.md b/assets/2026-02-04-gpg-encrypt-decrypt-scripts.md new file mode 100644 index 0000000..c4fffbe --- /dev/null +++ b/assets/2026-02-04-gpg-encrypt-decrypt-scripts.md @@ -0,0 +1,91 @@ +# GPG Encrypt/Decrypt Scripts + +Created 2026-02-04. Two utility scripts for symmetric GPG encryption with clipboard support. + +## Scripts + +### encryptfile + +Location: `~/.local/bin/encryptfile` + +Encrypts a file using symmetric GPG (password-based, no key required). + +```bash +#!/bin/bash +# Encrypt a file with symmetric GPG (password-based) +# Usage: encryptfile <file> + +if [ -z "$1" ]; then + echo "Usage: encryptfile <file>" + exit 1 +fi + +if [ ! -f "$1" ]; then + echo "File not found: $1" + exit 1 +fi + +gpg --symmetric --cipher-algo AES256 --armor -o "${1}.gpg" "$1" && \ + echo "Encrypted to ${1}.gpg" && \ + rm -i "$1" +``` + +### decryptfile + +Location: `~/.local/bin/decryptfile` + +Decrypts a GPG file and copies content to system clipboard. Supports both Wayland (wl-copy) and X11 (xclip). + +```bash +#!/bin/bash +# Decrypt a GPG file to clipboard (symmetric) +# Usage: decryptfile <file.gpg> + +if [ -z "$1" ]; then + echo "Usage: decryptfile <file.gpg>" + exit 1 +fi + +if [ ! -f "$1" ]; then + echo "File not found: $1" + exit 1 +fi + +# Decrypt and copy to clipboard +if command -v wl-copy &> /dev/null; then + # Wayland + gpg --decrypt "$1" 2>/dev/null | wl-copy + echo "Decrypted content copied to clipboard (Wayland)" +elif command -v xclip &> /dev/null; then + # X11 + gpg --decrypt "$1" 2>/dev/null | xclip -selection clipboard + echo "Decrypted content copied to clipboard (X11)" +else + echo "No clipboard tool found (need wl-copy or xclip)" + echo "Decrypting to stdout instead:" + gpg --decrypt "$1" +fi +``` + +## Usage + +```bash +# Encrypt a file (prompts for password, deletes original) +encryptfile ~/.secrets/some-password + +# Decrypt to clipboard (prompts for password) +decryptfile ~/.secrets/some-password.gpg +``` + +## Notes + +- Uses AES256 cipher for encryption +- Outputs armored (ASCII) format for portability +- Prompts to delete original file after encryption +- Clipboard copy clears automatically on some systems +- Consider using `pass` (standard unix password manager) for more robust solution - wraps GPG with better UX + +## Dependencies + +- `gpg` +- `wl-copy` (Wayland) or `xclip` (X11) for clipboard support |
