#!/bin/bash

source /opt/aninix/Uniglot/Bash/dns.bash

domain="$1"

function checkTLSA() {
    ### Usage: $0 "${domain}" tlsa _443._tcp
    identity="$1"
    git diff --no-index <(GenerateTLSA "${identity}" | sed 's/\s\+//g' | tr '[[:upper:]]' '[[:lower:]]' | sort) <(dig _443._tcp."${domain}" TLSA +short | sed 's/\s\+//g' | tr '[[:upper:]]' '[[:lower:]]' | sort)

}

function checkSSHFP() {
    git diff --no-index <(GenerateSSHFP | sed 's/\s\+//g' | tr '[[:upper:]]' '[[:lower:]]' | sort) <(dig "${domain}" SSHFP +short | sed 's/\s\+//g' | tr '[[:upper:]]' '[[:lower:]]' | sort)
}

function checkCAA() {
    ### Usage: $0 "${domain}" caa
    caa="$(dig "${domain}" CAA +short)"
    if [ "$caa" != '128 issue "letsencrypt.org"' ]; then
        exit 1
    else
        exit 0
    fi
}

case "$2" in
  "tlsa") checkTLSA "$3" ;;
  "sshfp") checkSSHFP ;;
  "caa") checkCAA ;;
esac
