ca-certificates-mozilla/compareoldnew

48 lines
1.1 KiB
Bash

#!/bin/bash
# print fingerprints of new or changed certificates
set -e
cleanup()
{
rm -rf new{,.files} old{,.files}
}
showcert()
{
openssl x509 -in "$1" -noout -subject -fingerprint -nameopt multiline,utf8,-esc_msb \
| sed -ne 's/ *commonName *= / CN=/p; s/.*Fingerprint=/ sha1=/p'
sed -ne '/^# \(openssl\|distrust\|alias\)/s/^#/ /p' < "$1"
}
cleanup
trap cleanup EXIT
mkdir old new
cd old
echo old...
ln -s ../.osc/certdata.txt
python3 ../certdata2pem.py > stdout 2> stderr
ls -1 cert-* | sort > ../old.files
cd ..
cd new
echo new...
ln -s ../certdata.txt
python3 ../certdata2pem.py > stdout 2> stderr
ls -1 cert-* | sort > ../new.files
cd ..
echo '----------------------------'
while read line; do
IFS='#' eval set -- \$line
old="$1"
new="$2"
common="$3"
if [ -n "$old" ]; then
echo "- $old"
showcert old/$old
elif [ -n "$new" ]; then
echo "+ $new"
showcert new/$new
elif ! cmp "old/$common" "new/$common"; then
echo "~ $common"
showcert old/$common
showcert new/$common
diff -u old/$common new/$common || true
fi
done < <(comm --output-delimiter='#' old.files new.files)