From 94b1c0fac29d0c63c4239daf65b00a09b04f6d55 Mon Sep 17 00:00:00 2001
From: Frank Sauerburger <frank@sauerburger.com>
Date: Fri, 11 Mar 2022 15:19:09 +0100
Subject: [PATCH] Return all matching keys

---
 app/hkp/views.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/app/hkp/views.py b/app/hkp/views.py
index 5436322..304f032 100644
--- a/app/hkp/views.py
+++ b/app/hkp/views.py
@@ -18,11 +18,14 @@ def lookup(request):
     if search.startswith("0x"):
         search = search[2:]
 
-    key = get_object_or_404(models.PublicKey, keyid__endswith=search)
-    if not request.user.has_perm("pgp.view_publickey", key):
+    keys = models.PublicKey.objects.filter(keyid__endswith=search)
+    keys = [key for key in keys
+            if request.user.has_perm("pgp.view_publickey", key)]
+    if not keys:
         raise Http404()
 
-    response = HttpResponse(key.armor, content_type="application/pgp-keys")
+    response = HttpResponse("\n".join(k.armor for k in keys),
+                            content_type="application/pgp-keys")
     response["Access-Control-Allow-Origin"] = "*"
     response["Access-Control-Allow-Methods"] = "GET, OPTIONS, HEAD"
     return response
-- 
GitLab