]> git.openstreetmap.org Git - chef.git/blob - cookbooks/dns/files/default/dns-update-sshfp
Generate a DNS include file for SSHFP records
[chef.git] / cookbooks / dns / files / default / dns-update-sshfp
1 #!/usr/bin/perl
2
3 open(SSHFP, "-|","sshfp", "-k", "/etc/ssh/ssh_known_hosts") || die $!;
4 open(SSHFP_JS, ">", "/var/lib/dns/include/sshfp.js") || die $!;
5
6 print SSHFP_JS qq|var SSHFP_RECORDS = [\n|;
7
8 while (my $line = <SSHFP>)
9 {
10   if ($line =~ /^(\S+) IN SSHFP (\d+) (\d+) ([0-9A-F]+)$/)
11   {
12     my $host = $1;
13     my $algorithm = $2;
14     my $type = $3;
15     my $value = $4;
16
17     print SSHFP_JS qq|  SSHFP("${host}", ${algorithm}, ${type}, "${value}");\n|;
18   }
19   else
20   {
21     warn $line;
22   }
23 }
24
25 print SSHFP_JS qq|];\n|;
26
27 close(SSHFP_JS);
28 close(SSHFP);
29
30 exit 0;