]> git.openstreetmap.org Git - dns.git/blobdiff - bin/mksshfp
Add SSHFP records to main domain
[dns.git] / bin / mksshfp
diff --git a/bin/mksshfp b/bin/mksshfp
new file mode 100755 (executable)
index 0000000..56c7bbb
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/perl
+
+
+open(SSHFP_JS, ">", "include/sshfp.js") || die $!;
+
+print SSHFP_JS qq|var SSHFP_RECORDS = [\n|;
+
+if (-f "/etc/ssh/ssh_known_hosts")
+{
+    open(SSHFP, "-|","sshfp", "-k", "/etc/ssh/ssh_known_hosts") || die $!;
+
+    while (my $line = <SSHFP>)
+    {
+        if ($line =~ /^(\S+) IN SSHFP (\d+) (\d+) ([0-9A-F]+)$/)
+        {
+            my $host = $1;
+            my $algorithm = $2;
+            my $type = $3;
+            my $value = $4;
+
+            print SSHFP_JS qq|  SSHFP("${host}", ${algorithm}, ${type}, "${value}");\n|;
+        }
+        else
+        {
+            warn $line;
+        }
+    }
+
+    close(SSHFP);
+}
+
+print SSHFP_JS qq|];\n|;
+
+close(SSHFP_JS);
+
+exit 0;