certifix

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

commit c4ea32ab1ee9f807a2076d912a224cdf7ef36f8b
parent f3960c6b76f5d97b4a2388fd4791b573c4faeb79
Author: Daniel Barlow <dan@telent.net>
Date:   Fri,  4 Oct 2024 23:07:48 +0100

--sign-file signs a single CSR from command line then exits

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

diff --git a/main.fnl b/main.fnl @@ -65,6 +65,8 @@ (assoc (parse-args rest) :server-private-key (slurp f)) ["--challenge-password" f & rest] (assoc (parse-args rest) :challenge-password (read-line f)) + ["--sign-file" f & rest] + (assoc (parse-args rest) :sign-and-exit (slurp f)) [bind-address] { : bind-address } _ {})) @@ -72,6 +74,8 @@ (doto (parse-args arg) (case + {:sign-and-exit pathname } + true {: ca-certificate : ca-private-key : server-certificate : server-private-key : challenge-password : bind-address} @@ -141,7 +145,17 @@ :ctx (ssl-context) })))) -(let [s (new-server)] - (ncall (s:listen)) - (print "server ready") - (ncall (s:loop))) +(fn run-server [] + (let [s (new-server)] + (ncall (s:listen)) + (print "server ready") + (ncall (s:loop)))) + +(fn sign-text [s] + (let [crt (new-crt (csr.new s))] + (print (crt:toPEM)))) + + +(if options.sign-and-exit + (sign-text options.sign-and-exit) + (run-server))