chiark / gitweb /
bin/setup, lib/func.tcl: Move root key generation into the library.
authorMark Wooding <mdw@distorted.org.uk>
Wed, 30 Nov 2022 10:31:31 +0000 (10:31 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Wed, 30 Nov 2022 10:44:40 +0000 (10:44 +0000)
bin/setup
lib/func.tcl

index b0e2226206e1c56f2385b9f94e577e53921c2f4a..723a4c00595144c4276ea3b2f4ff9ec97dd3ec1c 100755 (executable)
--- a/bin/setup
+++ b/bin/setup
@@ -61,18 +61,7 @@ file attributes "state/ca.db.new" \
 
 ## Generate the private CA key.
 make-directories 0750 "private"
-set subject ""
-foreach {attr value} $C(ca-name) { append subject "/$attr=$value" }
-exec >@stdout 2>@stderr openssl req -config "etc/openssl.conf"  \
-    -text -out "ca.cert" -keyout "private/ca.key" \
-    -new -x509 -days $C(ca-period) \
-    -subj $subject
-file attributes "private/ca.key" \
-    -owner $C(ca-owner) -group $C(ca-group) \
-    -permissions 0640
-file attributes "ca.cert" \
-    -owner $C(ca-owner) -group $C(ca-group) \
-    -permissions 0644
+generate-root-key
 
 ## Set up the directories for the actual certificates.  These are published
 ## by the web server.
index 3dd35c31efd74fd6b0522b886d5da90d45e5be33..1b53f2f113d842e00579820d592df19328b91a24 100644 (file)
@@ -495,6 +495,26 @@ proc cert-seq {file} {
   return [expr 0x$serial + 0]
 }
 
+###--------------------------------------------------------------------------
+### Generating the root key.
+
+proc generate-root-key {} {
+  global C
+
+  set subject ""
+  foreach {attr value} $C(ca-name) { append subject "/$attr=$value" }
+  exec >@stdout 2>@stderr openssl req -config "etc/openssl.conf"  \
+      -text -out "ca.cert" -keyout "private/ca.key" \
+      -new -x509 -days $C(ca-period) \
+      -subj $subject
+  file attributes "private/ca.key" \
+      -owner $C(ca-owner) -group $C(ca-group) \
+      -permissions 0640
+  file attributes "ca.cert" \
+      -owner $C(ca-owner) -group $C(ca-group) \
+      -permissions 0644
+}
+
 ###--------------------------------------------------------------------------
 ### Certificate requests.