From ce9086d314aef13763a6b06fc74a845009f321a6 Mon Sep 17 00:00:00 2001 From: jbergner Date: Thu, 19 Feb 2026 21:32:44 +0100 Subject: [PATCH] bugfix --- data/index.json | 38 +++---- data/keys/0x3E42CC77-pub.asc | 98 ------------------- ...0D6A7E3F56BF0BADABA140EFE349B5719CEFC4.asc | 56 +++++++++++ ...8F1C0B6A456CD4C1474AEC8162092BE1C1B291.asc | 56 +++++++++++ ...ergner@send.nrw-0xC37D763B38A3894C-pub.asc | 51 ---------- data/keys/public-2-.asc | 55 ----------- data/keys/public.asc | 55 ----------- main.go | 31 +++--- templates/layout.html | 2 +- templates/rows.html | 2 +- 10 files changed, 144 insertions(+), 300 deletions(-) delete mode 100644 data/keys/0x3E42CC77-pub.asc create mode 100644 data/keys/660D6A7E3F56BF0BADABA140EFE349B5719CEFC4.asc create mode 100644 data/keys/EA8F1C0B6A456CD4C1474AEC8162092BE1C1B291.asc delete mode 100644 data/keys/Jan-Bergner_jbergner@send.nrw-0xC37D763B38A3894C-pub.asc delete mode 100644 data/keys/public-2-.asc delete mode 100644 data/keys/public.asc diff --git a/data/index.json b/data/index.json index ee7c100..3ce88b4 100644 --- a/data/index.json +++ b/data/index.json @@ -1,34 +1,18 @@ [ { - "id": "jbergner_at_send.nrw--DFC59FED5CE41CC7A753E9C3C37D763B38A3894C", + "id": "j.bergner.hilden_at_gmail.com--EA8F1C0B6A456CD4C1474AEC8162092BE1C1B291", "name": "Jan Bergner", - "email": "jbergner@send.nrw", - "fingerprint": "DFC59FED5CE41CC7A753E9C3C37D763B38A3894C", - "filename": "Jan-Bergner_jbergner@send.nrw-0xC37D763B38A3894C-pub.asc", - "created_at": "2026-02-19T13:00:29.6481446+01:00" + "email": "j.bergner.hilden@gmail.com", + "fingerprint": "EA8F1C0B6A456CD4C1474AEC8162092BE1C1B291", + "filename": "EA8F1C0B6A456CD4C1474AEC8162092BE1C1B291.asc", + "created_at": "2026-02-19T20:53:37.1668347+01:00" }, { - "id": "tom.gilbo_at_hilden.de--7160BFBE0D520FDDA0BD3ADA5F09C4BD0EE0BE5A", - "name": "Tom Gilbo", - "email": "tom.gilbo@hilden.de", - "fingerprint": "7160BFBE0D520FDDA0BD3ADA5F09C4BD0EE0BE5A", - "filename": "public-2-.asc", - "created_at": "2026-02-19T12:57:27.4968564+01:00" - }, - { - "id": "max_at_send.nrw--D88C7FA9A544ECF8BCCEC6EB8F0B3E5851F2C8CC", - "name": "max", - "email": "max@send.nrw", - "fingerprint": "D88C7FA9A544ECF8BCCEC6EB8F0B3E5851F2C8CC", - "filename": "public.asc", - "created_at": "2025-09-22T20:48:08.8860389+02:00" - }, - { - "id": "jan.bergner_at_gmail.com--77588003EACB3CFF76B3C1B1A1E557B03E42CC77", - "name": "Jan Bergner", - "email": "jan.bergner@gmail.com", - "fingerprint": "77588003EACB3CFF76B3C1B1A1E557B03E42CC77", - "filename": "0x3E42CC77-pub.asc", - "created_at": "2025-09-22T20:02:50.1116136+02:00" + "id": "jan.bergner_at_hilden.de--660D6A7E3F56BF0BADABA140EFE349B5719CEFC4", + "name": "Jan Bergner (Stadt Hilden)", + "email": "jan.bergner@hilden.de", + "fingerprint": "660D6A7E3F56BF0BADABA140EFE349B5719CEFC4", + "filename": "660D6A7E3F56BF0BADABA140EFE349B5719CEFC4.asc", + "created_at": "2026-02-19T20:52:54.5792736+01:00" } ] \ No newline at end of file diff --git a/data/keys/0x3E42CC77-pub.asc b/data/keys/0x3E42CC77-pub.asc deleted file mode 100644 index 09ba9b6..0000000 --- a/data/keys/0x3E42CC77-pub.asc +++ /dev/null @@ -1,98 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: Keybase OpenPGP v1.0.0 -Comment: https://keybase.io/crypto - -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 -S6vU -=hcF1 ------END PGP PUBLIC KEY BLOCK----- diff --git a/data/keys/660D6A7E3F56BF0BADABA140EFE349B5719CEFC4.asc b/data/keys/660D6A7E3F56BF0BADABA140EFE349B5719CEFC4.asc new file mode 100644 index 0000000..90e6ed2 --- /dev/null +++ b/data/keys/660D6A7E3F56BF0BADABA140EFE349B5719CEFC4.asc @@ -0,0 +1,56 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: https://gopenpgp.org +Version: GopenPGP 2.9.0 + +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 +xx/h8PnQbTFYuJSENfy42Dg= +=VnbW +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/data/keys/EA8F1C0B6A456CD4C1474AEC8162092BE1C1B291.asc b/data/keys/EA8F1C0B6A456CD4C1474AEC8162092BE1C1B291.asc new file mode 100644 index 0000000..9470ce2 --- /dev/null +++ b/data/keys/EA8F1C0B6A456CD4C1474AEC8162092BE1C1B291.asc @@ -0,0 +1,56 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: https://gopenpgp.org +Version: GopenPGP 2.9.0 + +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 +JKIVC+HVIU6b +=drfJ +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/data/keys/Jan-Bergner_jbergner@send.nrw-0xC37D763B38A3894C-pub.asc b/data/keys/Jan-Bergner_jbergner@send.nrw-0xC37D763B38A3894C-pub.asc deleted file mode 100644 index b875b57..0000000 --- a/data/keys/Jan-Bergner_jbergner@send.nrw-0xC37D763B38A3894C-pub.asc +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -=BcaJ ------END PGP PUBLIC KEY BLOCK----- diff --git a/data/keys/public-2-.asc b/data/keys/public-2-.asc deleted file mode 100644 index 62cf0c2..0000000 --- a/data/keys/public-2-.asc +++ /dev/null @@ -1,55 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Comment: https://gopenpgp.org -Version: GopenPGP 2.9.0 - -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 -=IwML ------END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/data/keys/public.asc b/data/keys/public.asc deleted file mode 100644 index d8263d5..0000000 --- a/data/keys/public.asc +++ /dev/null @@ -1,55 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Comment: https://gopenpgp.org -Version: GopenPGP 2.9.0 - -xsFNBGjRma8BEACuJeyPs7T+VP3LDbJe/FyvojsRTQlGWpBthEKhDpU5VYyKg38P -Q/V+402jTqJkqBLJa+S1q7hN/PQ9It/+88MZFmh5o6rSA1lOfXV3lG/RjwNMOkl6 -cgFE90wQmQHIGG+gvZcXShLItTtl8j9Y0/ag+6WIeBS5sVvs8EiYxJVWXMy/BYoR -SMVU1nrvvGM1RISqeXCX7RTxdsRgBmFjpxFtclIEqIwxLgUOgxr+HvB8TcjvB3gP -oCPLhp9k4riurISrKGxMy7USB+5+EFHSBP5ICP0CNODsWL+Yd5npeVfs8oA0d5HQ -diS9qh84pcWAbzoZaqZCj8+9B07Bt8hNqtx6PCbUGymm4Ef2rtV84jhkKDV5aqJx -M2hnrS+FzhWvaoBpDTes3GHWo3BO0InKbrqwFCp5Ds4Ekq7Tiw5vx3LmHXjgA/up -ad+km1JQ1/aMMKAqDUVIUgpdGWu8mKeB+7nbfWM9QMLABllrSH0H0f0j7Fba5N7W -LmaA5cmc46l0jsXtgYMnTJOrMPbRklk6pO9T64P85E60fX+mz8D09Zjrhu3u2tY3 -FwEfyN6ZhHmKiIZXuFf++pdSu+nVa+BXpnqMWej802QOVcQgEDZEHQtWasm9EtEo -IHyLfDsC81RZYpqhcrtbFAl8/MJzLJu+U29FcjsCydca0jsyaB3NrXF3EwARAQAB -zRJtYXggPG1heEBzZW5kLm5ydz7Cwb0EEwEIAHEFgmjRma8DCwkHCRCPCz5YUfLI -zDUUAAAAAAAcABBzYWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3JnhXnoDRWvzhAp -QPRcXRETYgIVCAMWAAICGQECmwMCHgEWIQTYjH+ppUTs+LzOxuuPCz5YUfLIzAAA -JUoP/0GRyu4kdLqAxCHrWaOpBzHFpZrbjrVWuhpNElEsDH3Jthhwd9vsOEQBhoTG -Fj3R/l+BuWWI6VeaPboEtMCqSaoXnYWKyzpJvfkS0EEc+yiN4HXPcai4NBLBnSJI -9JnSVaTg6+xEJhQ1kCbKviGzxcOKMn55ygBz5cECblaOHdZFzA4XB0bK6tiVwMi/ -M2rhq5Nk+X4LW8El3L1QKrt3Mo1iiiqmZ4XJTevZh9w3cUiKKaIwXxIO7T9KkgLe -BFv+1jg7IemnNMfnHzeSX8JPX3odfRXsRWLfYteuO7u4awTadZjF2okH3FkhDoXF -K2Orl1q69kbHUYRYRHzoPFURZR9wbCbdZAAn9qT6Ihaiyg8taAz58Z25ldgWDIP8 -ql8+vlCnxF102f1ZY8XTxLQfNsTYPfFZ4Kspq0g31GuY03IIpdS9RcyjrHXJ7NDx -JXFfjQDcKRBDbzVknpEPOLYG86BMFlgxPntOoR55KHttNzzjdGN2nW/TOcwkArwF -1xvUImIuSgeV+p6LAUDRdMXVBLVZ+1HDOcz+L/9lamZfgMq1wfma0XcxeaHJNsL2 -f6BUGr/52MdOEuEQ53VRNX3g3fEZ5qHtDu8Au6avQisJdwTQ7jJdxAvXNfRWe5Cx -3n0uap//c/IkDHhRONdiY/Ph1aVCOJk6y/tGh0VKki4Bl/KZzsFNBGjRma8BEADX -iVUBaa3BxGrv6tvXRfDSl6q3JQojDH6pPKmJVT3dnyPb4XIcJ3xh0lsroeme4p01 -oMNn//TNqnH1mQMf53bZtMsJ3DGfaZ6l+zRKACCnNZVuiAHzUUHua8W3bfMTkm32 -iRvpI0/6Ch19znUPANdjxrANtuDqVtZB6NLr9nvQmtZDcLfSPw0xhrE/JYaLhpWM -ULMl99rJgpGivBLMwjtUaN42pd3yt/HiY0xh9WqHQUGCKSFxmbiuriDaR/65XNul -OzX0LypAqP8etvfSD90dMqOFIJ9jsjGAt9qGIvasnvS8ONvcVu/hvx3C8JUxQNfx -mi0nTR5EAUO3NXTp2wOi0tWLzRNW15NgWlEMuG6zAJPhnFPUnd3dEivbSqKEyRtO -b9kdTruIsGMFxn+QN/IGIabTIwekCpaPg0RJQqbzk22tBRS/yJOGtX7DKbC0cU4K -cVGyW2vOj/yHFQ84pEWZ/myk8+zdCWamxkFnmCBl7TdTGg5/VmQxsw2j44R2U6Ax -VkHl9SRJolGCMJYJlatvKybsuAyH0kCn6dbyxtpc/A4GFkIsMToVnsDr6hA1mPEe -lJaPRQ0mUUc0RA2BDXvmv5g62bNzNnNYlUGKvFAZotj88C9zYHKhmn4nkM9JfQIG -f6G8xlIKhMw+XZizZbi1r2MazbUZJ7TSvoFN25G/wwARAQABwsGsBBgBCABgBYJo -0ZmvCRCPCz5YUfLIzDUUAAAAAAAcABBzYWx0QG5vdGF0aW9ucy5vcGVucGdwanMu -b3JnUEPsuZ872vRsropTvyLVZQKbDBYhBNiMf6mlROz4vM7G648LPlhR8sjMAAD0 -Kw/6ApWnJyDH6885a9XuP5BvwDXhLAhYtid+AgKqJI0BgC/LoseUIxed8F/W/qXs -BO0xSge3w4XDCf/eMQrJonQvGR3CJWeD7kdxnDizMRn4xYNqnpZVJpKF+Esvym+M -PxQoqG7uOTdAkpDwvb1d8nmFPf3+9LattSw6vTSTTE8yHL4RTG8xDBTp9d71LyCQ -vw0C0kHCkDVAH1AOLrUkN4qCERk9i1LCWqFY8dz+i7/yKCYcZgFH5VX5nOOEoht2 -tt24XbQ8GOU7s6zhekY71UqCEr7Z5HuOmtjBtle4odT8fnogWsH3H1fIB6qNzKgz -dlOjn09ZyFV/xJv9lqMgTURFuRO28U8BOuC8LERgX3zWjoN8b/A5ni1Pq68JHrWY -xe0cErwnXINCMcAzp7vboAztZxnKfQ9WDJzVHFkgVAHqVNUw4qkrka0Cwp+m1y/H -UsTVJnNNwqwzrWfgMgDxuqXc5dYRW3CPjh7691Y1Gn+J2e7m8cRAdz2hFddI0+cl -1BblQytXfSseQ3fr/ahXjo6qDV3Y9MCjPCu+2J7zQdiDLgZzShZIOSUBISbw1dOK -FoZCrDqG3kUis06VHKlQcQsDJvdfhAgbFkymksQKE7EPDmyIuV1EqWxI/oC5ROOT -gaBFe8PcFGd8vUtDlyvUk3vDlQMcHEKAPIrzULgZud0Wl5Y= -=0v61 ------END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/main.go b/main.go index 5e796bc..dc7000c 100644 --- a/main.go +++ b/main.go @@ -13,7 +13,7 @@ // // Notes // - This server publishes PUBLIC keys only. -// - WKD uses z-base-32(SHA1(strings.ToLower(addr-spec))) per spec. +// - WKD uses z-base-32(SHA1(strings.ToLower(local-part))) per spec. // - HKP here is minimal: /pks/lookup?op=get|index&search= (email/fpr/substring). // - Protect /upload behind auth in production. package main @@ -362,7 +362,7 @@ func main() { http.Error(w, err.Error(), 500) } }) - apiToken := getenv("KEYSERVER_API_TOKEN", "") + apiToken := getenv("KEYSERVER_API_TOKEN", "12345678") mux.HandleFunc("/api/v1/keys", func(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { http.Error(w, "method not allowed", http.StatusMethodNotAllowed) @@ -413,22 +413,31 @@ func main() { return } - // filename - fn := strings.TrimSpace(req.Filename) + // filename: prefer fingerprint (unique) -> .asc + fn := normalizeFPR(fpr) if fn == "" { - fn = sanitizeFilename(req.Email) + fn = sanitizeFilename(req.Email) // fallback (shouldn't happen) } else { - fn = sanitizeFilename(fn) + fn = fn + ".asc" } + fn = sanitizeFilename(fn) // keeps it safe, but doesn't mangle hex + path := filepath.Join(keysDir, fn) + oldID := genID(req.Email, fpr) + if old, ok := st.get(oldID); ok { + if old.Filename != "" && old.Filename != fn { + _ = os.Remove(filepath.Join(keysDir, old.Filename)) + } + } + if err := os.WriteFile(path, b, 0o644); err != nil { http.Error(w, "save error", http.StatusInternalServerError) return } rec := KeyRecord{ - ID: genID(req.Email, fpr), + ID: oldID, Name: req.Name, Email: req.Email, Fingerprint: fpr, @@ -479,7 +488,7 @@ func main() { name := strings.TrimSpace(r.FormValue("name")) email := strings.TrimSpace(r.FormValue("email")) userFPR := strings.TrimSpace(r.FormValue("fingerprint")) // optional override - file, hdr, err := r.FormFile("file") + file, _, err := r.FormFile("file") if err != nil { http.Error(w, "missing file", http.StatusBadRequest) return @@ -508,10 +517,8 @@ func main() { } fpr = strings.ToUpper(strings.ReplaceAll(fpr, " ", "")) - base := sanitizeFilename(hdr.Filename) - if base == ".asc" || base == "" { - base = sanitizeFilename(email) - } + base := normalizeFPR(fpr) + ".asc" + base = sanitizeFilename(base) path := filepath.Join(keysDir, base) if err := os.WriteFile(path, b, 0o644); err != nil { http.Error(w, "save error", 500) diff --git a/templates/layout.html b/templates/layout.html index 170ed90..399a6f6 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -22,7 +22,7 @@

🔐 PGP Key Server

Unsere öffentlichen OpenPGP-Schlüssel
- + {{template "content" .}} diff --git a/templates/rows.html b/templates/rows.html index 3139e9c..80fd135 100644 --- a/templates/rows.html +++ b/templates/rows.html @@ -9,7 +9,7 @@ {{.Fingerprint}}