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