copy requested extensions to certificate

This commit is contained in:
Daniel Barlow 2024-10-04 18:14:48 +01:00
parent c70eefbf56
commit b52bdfc813
1 changed files with 6 additions and 4 deletions

View File

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