#!/bin/bash
#==============================================================================
#  Company:
#      Equinox Payments, LLC
#
#  Product:
#      Default application
#      Copyright 2018 Equinox Payments, LLC
#
#  \brief
#      Returns controller data
#
#==============================================================================

controllersCount=$(ls /etc/certificates/*pem 2>/dev/null| wc -l)

echo -e "Content-type: application/json\r\n"

if [[ $controllersCount -eq 0 ]]; then
    echo -e "{\n    \"result\": \"1\","
    echo -e "    \"message\": ["
    echo "       \"No Installed Controllers\""; 
else
    echo -e "{\n    \"result\": \"0\","   
    echo -e "    \"message\": ["

    cd /etc/certificates/
    for Controller in $(ls *pem); do
        certInfo=$(openssl x509 -in $Controller -noout -issuer -serial -startdate -enddate 2>/dev/null |tr '\n' '|')
        issuer=$(echo $certInfo | awk -F '|' '{print $1}' | sed 's/issuer= //g')
        serial=$(echo $certInfo | awk -F '|' '{print $2}' | sed 's/serial=//g')
        startdate=$(echo $certInfo | awk -F '|' '{print $3}' | sed 's/notBefore=//g')
        enddate=$(echo $certInfo | awk -F '|' '{print $4}' | sed 's/notAfter=//g')
        hash=$(openssl x509 -in $Controller -hash -noout 2>/dev/null | sed 's/$//g')
        echo "        {"
        echo "            \"fileName\": \"$Controller\","
        echo "            \"issuer\": \"${issuer}\","
        echo "            \"serial\": \"${serial}\","
        echo "            \"hash\": \"${hash}\","
        echo "            \"startdate\": \"${startdate}\","
        echo "            \"enddate\": \"${enddate}\""
        printf "        }"
        controllersCount=$((controllersCount-1))
        if [[ $controllersCount -ne 0 ]]; then echo ","; fi
    done
fi
echo "    ]"
echo "}"

cd - &>/dev/null
