From 9c634e4f26b06cc9bfdb755b0c6084c937d8bed0 Mon Sep 17 00:00:00 2001 From: Ahmed Date: Tue, 16 Jun 2026 23:01:43 +0300 Subject: add: lots of vibed edits again --- wk.fo/body.html | 8 ++- wk.fo/index.html | 10 ++-- wk.fo/pgp/cgi-bin/pgp-hkp.sh | 138 +++++++++++++++++++++++++++++++++++++++++++ wk.fo/pgp/index.html | 61 +++++++++++++++++++ 4 files changed, 210 insertions(+), 7 deletions(-) create mode 100644 wk.fo/pgp/cgi-bin/pgp-hkp.sh create mode 100644 wk.fo/pgp/index.html (limited to 'wk.fo') diff --git a/wk.fo/body.html b/wk.fo/body.html index 40ac3f3..158927c 100644 --- a/wk.fo/body.html +++ b/wk.fo/body.html @@ -1,14 +1,16 @@ -

File sharing, IRC bouncer, and VPN for friends. All services require an invitation.

+

File sharing, IRC, VPN, and tools for friends. Invite required for most services.

file sharing

Upload via HTTPS (token required):

curl -F "file=@photo.jpg" -H "Authorization: YOUR_TOKEN" https://wk.fo/

Files expire after 24 hours by default (max 48h with expires param). Max 256 MB.

irc

+

web client — no account needed. Or connect directly:

- +
serverwk.fo:6697 (TLS)
typeSoju bouncer
authSASL PLAIN (invite only)
-

Use the credentials provided to you on invite. Works with any IRC client that supports SASL PLAIN.

+

pgp

+

Curated keyserver — keys added after in-person verification. search or browse.

vpn

diff --git a/wk.fo/index.html b/wk.fo/index.html index fbb74cb..af02a48 100644 --- a/wk.fo/index.html +++ b/wk.fo/index.html @@ -2,7 +2,7 @@ - +wk.fo\n' "$CSS" + printf '\n\n' + printf '
\n

wk.fo / pgp / keys

\n
\n' + printf '
\n
serverwk.fo:51820 (UDP)
\n\n' + found=0 + for f in "$KEYS_DIR"/*.asc; do + [[ -f "$f" ]] || continue + found=1 + FP=$(basename "$f" .asc) + KEY_UID=$(gpg --with-colons --import-options show-only --import < "$f" 2>/dev/null \ + | awk -F: '/^uid/{print $10; exit}') + printf '\n' \ + "$FP" "$FP" "$KEY_UID" + done + [[ $found -eq 0 ]] && printf '\n' + printf '
fingerprintuid
%s%s
no keys
\n\n' + printf '%s\n' "$FOOTER" + printf '\n\n' + ;; + *) + printf "Content-Type: text/plain\r\n\r\n" + echo "Error: unknown op" + ;; + esac + ;; + + POST) + printf "Content-Type: text/plain\r\n\r\n" + read -r -d '' -n "${CONTENT_LENGTH:-4096}" SUBMITTED_KEY + + TMPDIR_GPG=$(mktemp -d) + FINGERPRINT=$(echo "$SUBMITTED_KEY" \ + | gpg --homedir "$TMPDIR_GPG" \ + --with-colons --import-options show-only \ + --import 2>/dev/null \ + | awk -F: '/^fpr/{print $10; exit}') + rm -rf "$TMPDIR_GPG" + + if [[ -z "$FINGERPRINT" ]]; then + echo "Error: Could not parse submitted key" + exit 0 + fi + + KEYFILE="$KEYS_DIR/${FINGERPRINT^^}.asc" + if [[ -f "$KEYFILE" ]]; then + echo "$SUBMITTED_KEY" > "$KEYFILE" + echo "Key updated successfully" + else + echo "Error: Fingerprint not registered." + echo "Contact hi@gumx.cc to arrange a key signing meeting." + fi + ;; +esac diff --git a/wk.fo/pgp/index.html b/wk.fo/pgp/index.html new file mode 100644 index 0000000..2847b9f --- /dev/null +++ b/wk.fo/pgp/index.html @@ -0,0 +1,61 @@ + + + + + + +wk.fo / pgp + + + +
+

wk.fo / pgp

+
+
+

Curated HKP keyserver. Keys are added after in-person verification only.

+

search

+
+ +

+
+

browse all keys

+

via gpg

+
gpg --keyserver hkps://wk.fo --recv-keys <fingerprint>
+

submit

+

Keys are not accepted without prior arrangement. Contact hi@gumx.cc.

+
+ + + -- cgit v1.2.3