ca-certificates-mozilla/compareoldnew

47 lines
1.0 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'
}
cleanup
trap cleanup EXIT
mkdir old new
cd old
echo old...
ln -s ../.osc/certdata.txt
python ../certdata2pem.py > stdout 2> stderr
ls -1 *.crt | sort > ../old.files
cd ..
cd new
echo new...
ln -s ../certdata.txt
python ../certdata2pem.py > stdout 2> stderr
ls -1 *.crt | sort > ../new.files
cd ..
echo '----------------------------'
while read line; do
IFS='#' eval set -- \$line
old="$1"
new="$2"
common="$3"
if [ -n "$old" ]; then
echo "> removed: $old"
showcert old/$old
elif [ -n "$new" ]; then
echo "> new: $new"
showcert new/$new
elif ! cmp "old/$common" "new/$common"; then
echo "> changed: $common"
showcert old/$common
showcert new/$common
diff -u old/$common new/$common || true
fi
done < <(comm --output-delimiter='#' old.files new.files)