From aa7ae1b9184ca52107d47bf7b9586cc413a78962 Mon Sep 17 00:00:00 2001 From: Anshul Gangwar Date: Tue, 31 Mar 2015 13:08:17 +0530 Subject: [PATCH] CLOUDSTACK-8416: added support for FIPS compliant checksum. It will now support md5, sha1, sha224, sha256, sha384 and sha512 checksums. In same checksum parameter user can pass any of the above algorithms hash This closes #196 --- scripts/installer/createtmplt.sh | 14 ++++++++++++-- scripts/installer/createvolume.sh | 16 +++++++++++++--- scripts/storage/qcow2/createtmplt.sh | 14 ++++++++++++-- scripts/storage/qcow2/createvolume.sh | 14 ++++++++++++-- scripts/storage/secondary/createtmplt.sh | 14 ++++++++++++-- scripts/storage/secondary/createvolume.sh | 14 ++++++++++++-- 6 files changed, 73 insertions(+), 13 deletions(-) diff --git a/scripts/installer/createtmplt.sh b/scripts/installer/createtmplt.sh index 95ecd9cb6c9..67b25c3b923 100755 --- a/scripts/installer/createtmplt.sh +++ b/scripts/installer/createtmplt.sh @@ -38,8 +38,18 @@ fi } verify_cksum() { - echo "$1 $2" | md5sum -c --status - #printf "$1\t$2" | md5sum -c --status + digestalgo="" + case ${#1} in + 32) digestalgo="md5sum" ;; + 40) digestalgo="sha1sum" ;; + 56) digestalgo="sha224sum" ;; + 64) digestalgo="sha256sum" ;; + 96) digestalgo="sha384sum" ;; + 128) digestalgo="sha512sum" ;; + *) echo "Please provide valid cheksum" ; exit 3 ;; + esac + echo "$1 $2" | $digestalgo -c --status + #printf "$1\t$2" | $digestalgo -c --status if [ $? -gt 0 ] then printf "Checksum failed, not proceeding with install\n" diff --git a/scripts/installer/createvolume.sh b/scripts/installer/createvolume.sh index af33b08c800..00ee5e5e773 100755 --- a/scripts/installer/createvolume.sh +++ b/scripts/installer/createvolume.sh @@ -39,9 +39,19 @@ fi } verify_cksum() { - echo "$1 $2" | md5sum -c --status - #printf "$1\t$2" | md5sum -c --status - if [ $? -gt 0 ] + digestalgo="" + case ${#1} in + 32) digestalgo="md5sum" ;; + 40) digestalgo="sha1sum" ;; + 56) digestalgo="sha224sum" ;; + 64) digestalgo="sha256sum" ;; + 96) digestalgo="sha384sum" ;; + 128) digestalgo="sha512sum" ;; + *) echo "Please provide valid cheksum" ; exit 3 ;; + esac + echo "$1 $2" | $digestalgo -c --status + #printf "$1\t$2" | $digestalgo -c --status + if [ $? -gt 0 ] then printf "Checksum failed, not proceeding with install\n" exit 3 diff --git a/scripts/storage/qcow2/createtmplt.sh b/scripts/storage/qcow2/createtmplt.sh index 38bb561cd5c..11645250e55 100755 --- a/scripts/storage/qcow2/createtmplt.sh +++ b/scripts/storage/qcow2/createtmplt.sh @@ -39,8 +39,18 @@ fi verify_cksum() { - echo "$1 $2" | md5sum -c --status - #printf "$1\t$2" | md5sum -c --status + digestalgo="" + case ${#1} in + 32) digestalgo="md5sum" ;; + 40) digestalgo="sha1sum" ;; + 56) digestalgo="sha224sum" ;; + 64) digestalgo="sha256sum" ;; + 96) digestalgo="sha384sum" ;; + 128) digestalgo="sha512sum" ;; + *) echo "Please provide valid cheksum" ; exit 3 ;; + esac + echo "$1 $2" | $digestalgo -c --status + #printf "$1\t$2" | $digestalgo -c --status if [ $? -gt 0 ] then printf "Checksum failed, not proceeding with install\n" diff --git a/scripts/storage/qcow2/createvolume.sh b/scripts/storage/qcow2/createvolume.sh index 527aa68db28..91a76323f15 100755 --- a/scripts/storage/qcow2/createvolume.sh +++ b/scripts/storage/qcow2/createvolume.sh @@ -40,8 +40,18 @@ fi verify_cksum() { - echo "$1 $2" | md5sum -c --status - #printf "$1\t$2" | md5sum -c --status + digestalgo="" + case ${#1} in + 32) digestalgo="md5sum" ;; + 40) digestalgo="sha1sum" ;; + 56) digestalgo="sha224sum" ;; + 64) digestalgo="sha256sum" ;; + 96) digestalgo="sha384sum" ;; + 128) digestalgo="sha512sum" ;; + *) echo "Please provide valid cheksum" ; exit 3 ;; + esac + echo "$1 $2" | $digestalgo -c --status + #printf "$1\t$2" | $digestalgo -c --status if [ $? -gt 0 ] then printf "Checksum failed, not proceeding with install\n" diff --git a/scripts/storage/secondary/createtmplt.sh b/scripts/storage/secondary/createtmplt.sh index 358022b6dec..37b4703506e 100755 --- a/scripts/storage/secondary/createtmplt.sh +++ b/scripts/storage/secondary/createtmplt.sh @@ -41,8 +41,18 @@ fi } verify_cksum() { - echo "$1 $2" | md5sum -c --status - #printf "$1\t$2" | md5sum -c --status + digestalgo="" + case ${#1} in + 32) digestalgo="md5sum" ;; + 40) digestalgo="sha1sum" ;; + 56) digestalgo="sha224sum" ;; + 64) digestalgo="sha256sum" ;; + 96) digestalgo="sha384sum" ;; + 128) digestalgo="sha512sum" ;; + *) echo "Please provide valid cheksum" ; exit 3 ;; + esac + echo "$1 $2" | $digestalgo -c --status + #printf "$1\t$2" | $digestalgo -c --status if [ $? -gt 0 ] then printf "Checksum failed, not proceeding with install\n" diff --git a/scripts/storage/secondary/createvolume.sh b/scripts/storage/secondary/createvolume.sh index 8cbccc66e19..e41db0bd1b9 100755 --- a/scripts/storage/secondary/createvolume.sh +++ b/scripts/storage/secondary/createvolume.sh @@ -41,8 +41,18 @@ fi } verify_cksum() { - echo "$1 $2" | md5sum -c --status - #printf "$1\t$2" | md5sum -c --status + digestalgo="" + case ${#1} in + 32) digestalgo="md5sum" ;; + 40) digestalgo="sha1sum" ;; + 56) digestalgo="sha224sum" ;; + 64) digestalgo="sha256sum" ;; + 96) digestalgo="sha384sum" ;; + 128) digestalgo="sha512sum" ;; + *) echo "Please provide valid cheksum" ; exit 3 ;; + esac + echo "$1 $2" | $digestalgo -c --status + #printf "$1\t$2" | $digestalgo -c --status if [ $? -gt 0 ] then printf "Checksum failed, not proceeding with install\n"