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))
(: :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]