#!/usr/bin/env bash
#
# System-Tools
# Copyright (C) 2002-2026 by Thomas Dreibholz
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Contact: thomas.dreibholz@gmail.com
#

# Bash options:
set -euo pipefail

# ====== Prepare temporary directory ========================================
tempDir=""
trap 'rm -rf "${tempDir}"' EXIT INT TERM HUP
tempDir="$(mktemp -d -t 80-x509.XXXXXXXXXX)"
cd "${tempDir}"

# ====== Make Test CA and Certificates ======================================
echo "Running make-test-certificates ..."
/usr/share/system-tools/make-test-certificates

CA="TestCA/TestLevel1/certs/TestLevel1.crt"
CRL="TestCA/TestGlobal.crl"   # combined CRL!
CERTIFICATES="$(find TestCA -name "*.crt" | sort)"

# ====== Run tests ==========================================================
for certificate in ${CERTIFICATES} ; do
   echo "Running check-certificate for ${certificate}:"
   check-certificate "${CA}" "${certificate}" --crl "${CRL}" || true
done

echo "Test passed!"
