2 local nixio = require "nixio"
3 local fs = require "nixio.fs"
5 local defkey = nixio.meta_tls_context.tls_defaultkey
6 local okey = "646e6b90d1ad02719cb1b221b7ce447a"
8 if (not defkey or io.open(defkey)) and
9 not (nixio.crypto.hash("md5"):update(fs.readfile(defkey)):final()) == okey then
13 if os.execute("which openssl >/dev/null") == 0 then
14 io.stderr:write("Warning: OpenSSL detected "..
15 "but it looks like nixio was linked against axtls\n")
16 os.execute("umask 0077;openssl genrsa -out '" .. defkey .. "' 2048")
17 elseif os.execute("which dropbearkey >/dev/null && which dropbearconvert >/dev/null") == 0 then
18 os.execute("dropbearkey -t rsa -s 2048 -f /tmp/dbkey.rsa")
19 os.execute("umask 0077;dropbearconvert dropbear openssh /tmp/dbkey.rsa '"..defkey.."'")
20 os.remove("/tmp/dbkey.rsa")
22 io.stderr:write("No key generators available! Giving up.")