from django.shortcuts import render, get_object_or_404 from django.http import HttpResponse, Http404 from pgp import models def policy(request, domain=None): if domain is None: domain = request.get_host().rsplit(":", 1)[0] return HttpResponse(f"# WKD policy file for {domain}", content_type="text/plain") def lookup(request, zbase, domain=None): if domain is None: domain = request.get_host().rsplit(":", 1)[0] publickey = get_object_or_404(models.PublicKey, wkdid=zbase, email__endswith=f"@{domain}") if not request.user.has_perm("pgp.view_publickey", publickey): raise Http404() publickey._decode() encoded = publickey.decoded.ascii_unarmor(str(publickey.decoded)) return HttpResponse(bytes(encoded["body"]), content_type="application/octet-stream")