#!/bin/bash
set -e

checkcode () {
    if [ -z "$1" ]; then
        echo -e "\n\e[31mERROR!\033[0m chkcode missing return code paramater\n"
        exit 1
    else
        retcode=$1
    fi

    if [ $retcode -ne 0 ]; then
        echo -e "\t\e[31mERROR!\033[0m Response Code: $retcode"
    else
        printf '\e[1;32mOK!\e[0m\n'
    fi
}

printf "Testing contents.7z integrity... "
7z t contents.7z > /dev/null 2>&1
checkcode $?

printf "Checking sha512 checksums... "
sha512sum -c checksums.sha512 > /dev/null 2>&1
checkcode $?

printf "Checking signature against provided public key... "
ssh-keygen -Y verify -f "./anonymous_signer" -I "anonymous" -n "file-integrity" -s contents.7z.sig < contents.7z > /dev/null > /dev/null > /dev/null 2>&1
checkcode $?