1
0
Fork 0
dotfiles2000/dotfiles/my-binaries/dot-bin/tsaClient.sh
2024-10-31 22:09:39 +01:00

67 lines
2.3 KiB
Bash
Executable file

#!/bin/bash
#########################################################################
## tsaClient.sh
#
# Clientscript for the FreeTSA Timestamping Service
# This script generates a tgz archive containing a given file and the
# timestamping information from freetsa.org including tsr, tsq, log and
# the ca certificates.
#
# devops@elfring.ms - 2019-05-29
#
#
echo "Clientscript for the FreeTSA Timestamping Service"
echo "https://www.freetsa.org"
echo
fileToStamp=$1
if [ _$# != _1 ]
then
echo "Usage: $0 [file to timestamp]"
echo
exit 1
fi
if [ ! -e $fileToStamp ]
then
echo "$fileToStamp does not exist."
echo
exit 2
fi
{
echo "Timestamping file $fileToStamp"
echo
echo "-------> Create SHA512 checksum (informational)"
echo "# sha512sum $fileToStamp"
sha512sum $fileToStamp 2>&1 | sed 's/^/ /'
echo
echo "-------> Create and display timestamp query (TSQ)"
echo "# openssl ts -query -data $fileToStamp -no_nonce -sha512 -cert -out $fileToStamp.tsq"
echo "# openssl ts -query -in $fileToStamp.tsq -text"
openssl ts -query -data $fileToStamp -no_nonce -sha512 -cert -out $fileToStamp.tsq 2>&1 | sed 's/^/ /'
openssl ts -query -in $fileToStamp.tsq -text 2>&1 | sed 's/^/ /'
echo
echo "-------> Have the TSQ signed and display the reply (TSR)"
echo "# curl --silent --header "Content-Type: application/timestamp-query" --data-binary "@$fileToStamp.tsq" https://freetsa.org/tsr --output $fileToStamp.tsr"
echo "# openssl ts -reply -in $fileToStamp.tsq -text"
curl --silent --header "Content-Type: application/timestamp-query" --data-binary "@$fileToStamp.tsq" https://freetsa.org/tsr --output $fileToStamp.tsr 2>&1 | sed 's/^/ /'
openssl ts -reply -in $fileToStamp.tsr -text 2>&1 | sed 's/^/ /'
echo
echo "-------> Verify TSR (informational)"
echo "# curl --silent --output freetsa_cacert.pem https://freetsa.org/files/cacert.pem"
echo "# openssl ts -verify -data $fileToStamp -in $fileToStamp.tsr -CAfile freetsa_cacert.pem"
curl --silent --output freetsa_cacert.pem https://freetsa.org/files/cacert.pem 2>&1 | sed 's/^/ /'
openssl ts -verify -data $fileToStamp -in $fileToStamp.tsr -CAfile freetsa_cacert.pem 2>&1 | sed 's/^/ /'
} | tee $fileToStamp.log
tar czf $fileToStamp.tsa.tgz $fileToStamp.tsq $fileToStamp.tsr $fileToStamp.log freetsa_cacert.pem $fileToStamp
rm $fileToStamp.tsq $fileToStamp.tsr $fileToStamp.log freetsa_cacert.pem
echo