summaryrefslogtreecommitdiff
path: root/assets/2026-02-04-gpg-encrypt-decrypt-scripts.md
diff options
context:
space:
mode:
Diffstat (limited to 'assets/2026-02-04-gpg-encrypt-decrypt-scripts.md')
-rw-r--r--assets/2026-02-04-gpg-encrypt-decrypt-scripts.md91
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