parse command-line for options instead of hardcoding
note port is still hardcoded
This commit is contained in:
parent
e410cef1f4
commit
32099b7541
36
main.fnl
36
main.fnl
@ -36,9 +36,37 @@
|
|||||||
(fn slurp [filename]
|
(fn slurp [filename]
|
||||||
(with-open [f (io.open filename "r")] (f:read "*a")))
|
(with-open [f (io.open filename "r")] (f:read "*a")))
|
||||||
|
|
||||||
(local ca-key (pkey.new (slurp "ca.key")))
|
(fn read-line [filename]
|
||||||
(local ca-crt (x509.new (slurp "ca.crt")))
|
(with-open [f (io.open filename "r")] (f:read "l")))
|
||||||
(local psk (with-open [f (io.open "psk" "r")] (f:read "l")))
|
|
||||||
|
(fn assoc [tbl k v & more]
|
||||||
|
(tset tbl k v)
|
||||||
|
(case more
|
||||||
|
[k v] (assoc tbl k v)
|
||||||
|
_ tbl))
|
||||||
|
|
||||||
|
(fn parse-args [args]
|
||||||
|
(match args
|
||||||
|
["--certificate" f & rest]
|
||||||
|
(assoc (parse-args rest) :certificate (slurp f))
|
||||||
|
["--private-key" f & rest]
|
||||||
|
(assoc (parse-args rest) :private-key (slurp f))
|
||||||
|
["--challenge-password" f & rest]
|
||||||
|
(assoc (parse-args rest) :challenge-password (read-line f))
|
||||||
|
[peer] { : peer }
|
||||||
|
_ {}))
|
||||||
|
|
||||||
|
(local options
|
||||||
|
(doto
|
||||||
|
(parse-args arg)
|
||||||
|
(case
|
||||||
|
{: certificate : private-key : challenge-password : peer}
|
||||||
|
true
|
||||||
|
_
|
||||||
|
(assert nil "missing required command line params"))))
|
||||||
|
|
||||||
|
(local ca-key (pkey.new options.private-key))
|
||||||
|
(local ca-crt (x509.new options.certificate))
|
||||||
|
|
||||||
(fn new-crt [csr]
|
(fn new-crt [csr]
|
||||||
(let [crt
|
(let [crt
|
||||||
@ -56,7 +84,7 @@
|
|||||||
(let [attr (csr:getAttributes)]
|
(let [attr (csr:getAttributes)]
|
||||||
(accumulate [found false
|
(accumulate [found false
|
||||||
_ v (ipairs (. attr "challengePassword"))]
|
_ v (ipairs (. attr "challengePassword"))]
|
||||||
(or found (= v psk)))))
|
(or found (= v options.challenge-password)))))
|
||||||
|
|
||||||
|
|
||||||
(fn handle-sign-csr [out]
|
(fn handle-sign-csr [out]
|
||||||
|
Loading…
Reference in New Issue
Block a user