certifix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit b52bdfc813c66c86210be856ead6d996cac349ff
parent c70eefbf567914fe5529d82e21d6d3a331dde3b5
Author: Daniel Barlow <dan@telent.net>
Date:   Fri,  4 Oct 2024 18:14:48 +0100

copy requested extensions to certificate

Diffstat:
Mmain.fnl | 10++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/main.fnl b/main.fnl @@ -89,9 +89,11 @@ (: :setIssuer (ca-crt:getSubject)) (: :setLifetime (os.time) (+ (* 365 86400) (os.time))) (: :setSubject (csr:getSubject)) - (: :setPublicKey (csr:getPublicKey)) - (: :sign ca-key))] - (crt:toPEM))) + (: :setPublicKey (csr:getPublicKey)))] + (for [i 1 (csr:getRequestedExtensionCount) 1] + (let [ext (csr:getRequestedExtension i)] + (crt:addExtension ext))) + (doto crt (: :sign ca-key)))) (fn approve-request? [csr] (let [challengePassword (csr:getAttribute :challengePassword)] @@ -105,7 +107,7 @@ (if (approve-request? req) (do (out:write_headers (make-headers 200 { :content-type "text/plain" }) false) - (out:write_chunk (new-crt req) true)) + (out:write_chunk (: (new-crt req) :toPEM) true)) (send-error out 400 "missing attributes in CSR")))) (fn on-stream [sv out]