summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-10-19 21:33:44 +0200
committerGitHub <noreply@github.com>2020-10-19 21:33:44 +0200
commit63162ff9d1ca8c7ecef2f37b958e9436a0c9bf62 (patch)
treef6dbb1535fe5df1b98f074448c03ac5245de2039
parent92e27ced5cc9d1a815258130fffd67845e490dbb (diff)
parent34b46ca2738fe6a9d15b0ee52deb3d3d5f76606e (diff)
downloadvyatta-cfg-system-63162ff9d1ca8c7ecef2f37b958e9436a0c9bf62.tar.gz
vyatta-cfg-system-63162ff9d1ca8c7ecef2f37b958e9436a0c9bf62.zip
Merge pull request #131 from c-po/sha256-verify
image: T2992: automatically verify sha256 checksum on ISO download
-rwxr-xr-xscripts/install/install-image33
1 files changed, 32 insertions, 1 deletions
diff --git a/scripts/install/install-image b/scripts/install/install-image
index 0553348e..58362357 100755
--- a/scripts/install/install-image
+++ b/scripts/install/install-image
@@ -147,9 +147,40 @@ fetch_iso_by_url ()
echo "Download of $NEW_ISO failed"
exit 1
fi
-
echo "ISO download succeeded."
+ echo "Checking SHA256 (256-bit) checksum..."
+ ip vrf exec $VRF curl -L -H "User-Agent: VyOS/$vyos_version" $AUTH -f -o ${filename}.sha256 ${NEW_ISO}.sha256
+ if [ $? -ne 0 ]; then
+ echo "Unable to fetch SHA256 checksum file."
+ echo -n "Do you want to continue without checksum verification? (yes/no) [yes] "
+
+ response=$(get_response "Yes" "Yes No Y N")
+ if [ "$response" == "no" ] || [ "$response" == "n" ]; then
+ rm -f $filename
+ fail_exit 'OK. Installation will not be performed.'
+ fi
+ # In case signature file was partially downloaded...
+ rm -f ${filename}.sha256
+ fi
+ if [ -e ${filename}.sha256 ]; then
+ echo "Found it. Verifying checksum..."
+ # save our current working directory
+ cwd=$(pwd)
+ # checksum validation must be performed in the download directory because
+ # of the relative path inside the checksum file
+ cd ${TEMP_DIR}
+ sha256sum --check --quiet ${NEW_ISO##*/}.sha256
+ if [ $? -ne 0 ]; then
+ echo "Signature check FAILED."
+ fail_exit 'Installation will not be performed.'
+ else
+ echo "SHA256 checksum valid."
+ fi
+ # restore old working directory
+ cd $cwd
+ fi
+
echo "Checking for digital signature file..."
ip vrf exec $VRF curl -L -H "User-Agent: VyOS/$vyos_version" $AUTH -f -o ${filename}.asc ${NEW_ISO}.asc
if [ $? -ne 0 ]; then