Würg around some nasty axTLS keying bugs
[project/luci.git] / libs / nixio / axtls-root / usr / sbin / nixio-axtls-checkkey
1 #!/usr/bin/lua
2 local nixio = require "nixio"
3 local fs = require "nixio.fs"
4 local posix
5 local defkey = nixio.meta_tls_context.tls_defaultkey
6 local okey = "646e6b90d1ad02719cb1b221b7ce447a"
7
8 if (not defkey or io.open(defkey)) and
9 not (nixio.crypto.hash("md5"):update(fs.readfile(defkey)):final()) == okey then
10         os.exit(0)
11 end
12
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")
21 else
22         io.stderr:write("No key generators available! Giving up.")
23         os.exit(1)
24 end