forked from mirrors/openup
Use SSL fingerprint to check the certificate.
Move generic rm(1) call in trap. Run a wildcard rm(1) at the end of the script. Cope with multiple certificates in one PEM file.
This commit is contained in:
parent
c02d1d5463
commit
01dde390fc
1 changed files with 12 additions and 11 deletions
23
openup
23
openup
|
|
@ -24,7 +24,7 @@
|
||||||
### user defined variables
|
### user defined variables
|
||||||
OPENUP_URL='https://stable.mtier.org/openup'
|
OPENUP_URL='https://stable.mtier.org/openup'
|
||||||
PKG_CERT_URL='https://stable.mtier.org/mtier.cert'
|
PKG_CERT_URL='https://stable.mtier.org/mtier.cert'
|
||||||
PKG_CERT_REGEX='M:Tier Ltd. OpenBSD Stable Updates'
|
PKG_CERT_FPRINT='DE:29:0F:7F:B8:0E:36:5A:AF:A9:BF:E0:4E:08:C2:0F:2D:50:16:97'
|
||||||
### end of user defined variables
|
### end of user defined variables
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -59,8 +59,9 @@ MEESA=$(readlink -f $0)
|
||||||
TMPDIR="${TMPDIR:=/tmp}"
|
TMPDIR="${TMPDIR:=/tmp}"
|
||||||
TMPCERT=$(mktemp -p ${TMPDIR} openup-pkg_cert.XXXXXX) || exit 1
|
TMPCERT=$(mktemp -p ${TMPDIR} openup-pkg_cert.XXXXXX) || exit 1
|
||||||
TMPUPD=$(mktemp -p ${TMPDIR} openup-update.XXXXXX) || exit 1
|
TMPUPD=$(mktemp -p ${TMPDIR} openup-update.XXXXXX) || exit 1
|
||||||
|
TMPSPLITCERT=$(mktemp -p ${TMPDIR} openup-split_cert.XXXXXX) || exit 1
|
||||||
|
|
||||||
trap "rm -f ${TMPCERT} ${TMPUPD}" 1 2 3 13 15
|
trap "rm -f ${TMPDIR}/openup-*" 1 2 3 13 15
|
||||||
|
|
||||||
error() {
|
error() {
|
||||||
echo -n "*** ERROR: $@"
|
echo -n "*** ERROR: $@"
|
||||||
|
|
@ -69,10 +70,13 @@ error() {
|
||||||
get_cert() {
|
get_cert() {
|
||||||
local _CMD
|
local _CMD
|
||||||
|
|
||||||
if [ -r /etc/ssl/pkgca.pem ]; then
|
[[ -r /etc/ssl/pkgca.pem ]] && \
|
||||||
openssl x509 -noout -in /etc/ssl/pkgca.pem -issuer 2>/dev/null | \
|
split -p '^-----BEGIN CERTIFICATE-----$' /etc/ssl/pkgca.pem ${TMPSPLITCERT}
|
||||||
grep -q "${PKG_CERT_REGEX}" && return
|
|
||||||
fi
|
for i in ${TMPSPLITCERT}* ; do
|
||||||
|
openssl x509 -noout -in $i -fingerprint 2>/dev/null |
|
||||||
|
grep -q "${PKG_CERT_FPRINT}" && return
|
||||||
|
done
|
||||||
|
|
||||||
echo "===> Downloading certificate"
|
echo "===> Downloading certificate"
|
||||||
_CMD="ftp -Vo ${TMPCERT} ${PKG_CERT_URL}"
|
_CMD="ftp -Vo ${TMPCERT} ${PKG_CERT_URL}"
|
||||||
|
|
@ -87,8 +91,6 @@ get_cert() {
|
||||||
if [ -z "${DRYRUN}" ]; then
|
if [ -z "${DRYRUN}" ]; then
|
||||||
eval ${_CMD} || exit 1
|
eval ${_CMD} || exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f ${TMPCERT}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update_self() {
|
update_self() {
|
||||||
|
|
@ -110,14 +112,11 @@ update_self() {
|
||||||
eval ${_CMD} # non-fatal
|
eval ${_CMD} # non-fatal
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
# XXX
|
# XXX
|
||||||
rm -f ${TMPUPD}
|
|
||||||
echo "successfully updated openup(8) to version ${_N}, restarting myself"
|
echo "successfully updated openup(8) to version ${_N}, restarting myself"
|
||||||
${MEESA} -U $@
|
${MEESA} -U $@
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f ${TMPUPD}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update_binpatches() {
|
update_binpatches() {
|
||||||
|
|
@ -166,3 +165,5 @@ done
|
||||||
update_binpatches
|
update_binpatches
|
||||||
update_pkg
|
update_pkg
|
||||||
update_fw
|
update_fw
|
||||||
|
|
||||||
|
rm -f ${TMPDIR}/openup-*
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue