@@ -759,15 +759,37 @@ nvm_ls_remote_index_tab() {
759
759
760
760
nvm_checksum () {
761
761
local NVM_CHECKSUM
762
- if nvm_has " sha1sum" && ! nvm_is_alias " sha1sum" ; then
763
- NVM_CHECKSUM=" $( command sha1sum " $1 " | command awk ' {print $1}' ) "
764
- elif nvm_has " sha1" && ! nvm_is_alias " sha1" ; then
765
- NVM_CHECKSUM=" $( command sha1 -q " $1 " ) "
766
- elif nvm_has " shasum" && ! nvm_is_alias " shasum" ; then
767
- NVM_CHECKSUM=" $( shasum " $1 " | command awk ' {print $1}' ) "
762
+ if [ -z " $3 " ] || [ " $3 " == " sha1" ]; then
763
+ if nvm_has " sha1sum" && ! nvm_is_alias " sha1sum" ; then
764
+ NVM_CHECKSUM=" $( command sha1sum " $1 " | command awk ' {print $1}' ) "
765
+ elif nvm_has " sha1" && ! nvm_is_alias " sha1" ; then
766
+ NVM_CHECKSUM=" $( command sha1 -q " $1 " ) "
767
+ elif nvm_has " shasum" && ! nvm_is_alias " shasum" ; then
768
+ NVM_CHECKSUM=" $( shasum " $1 " | command awk ' {print $1}' ) "
769
+ else
770
+ echo " Unaliased sha1sum, sha1, or shasum not found." >&2
771
+ return 2
772
+ fi
768
773
else
769
- echo " Unaliased sha1sum, sha1, or shasum not found." >&2
770
- return 2
774
+ if nvm_has " sha256sum" && ! nvm_is_alias " sha256sum" ; then
775
+ NVM_CHECKSUM=" $( sha256sum " $1 " | awk ' {print $1}' ) "
776
+ elif nvm_has " shasum" && ! nvm_is_alias " shasum" ; then
777
+ NVM_CHECKSUM=" $( shasum -a 256 " $1 " | awk ' {print $1}' ) "
778
+ elif nvm_has " sha256" && ! nvm_is_alias " sha256" ; then
779
+ NVM_CHECKSUM=" $( sha256 -q " $1 " | awk ' {print $1}' ) "
780
+ elif nvm_has " gsha256sum" && ! nvm_is_alias " gsha256sum" ; then
781
+ NVM_CHECKSUM=" $( gsha256sum " $1 " | awk ' {print $1}' ) "
782
+ elif nvm_has " openssl" && ! nvm_is_alias " openssl" ; then
783
+ NVM_CHECKSUM=" $( openssl dgst -sha256 " $1 " | rev | awk ' {print $1}' | rev) "
784
+ elif nvm_has " libressl" && ! nvm_is_alias " libressl" ; then
785
+ NVM_CHECKSUM=" $( libressl dgst -sha256 " $1 " | rev | awk ' {print $1}' | rev) "
786
+ elif nvm_has " bssl" && ! nvm_is_alias " bssl" ; then
787
+ NVM_CHECKSUM=" $( bssl sha256sum " $1 " | awk ' {print $1}' ) "
788
+ else
789
+ echo " Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found." >&2
790
+ echo " WARNING: Continuing *without checksum verification*" >&2
791
+ return
792
+ fi
771
793
fi
772
794
773
795
if [ " _$NVM_CHECKSUM " = " _$2 " ]; then
@@ -1051,8 +1073,7 @@ nvm_install_merged_node_binary() {
1051
1073
fi
1052
1074
if (
1053
1075
[ " $NVM_INSTALL_ERRORED " != true ] && \
1054
- echo " WARNING: checksums are currently disabled for node.js v4.0 and later" >&2 && \
1055
- # nvm_checksum "$tmptarball" "$sum" && \
1076
+ nvm_checksum " $tmptarball " " $sum " " sha256" && \
1056
1077
command tar -x${tar_compression_flag} f " $tmptarball " -C " $tmpdir " --strip-components 1 && \
1057
1078
command rm -f " $tmptarball " && \
1058
1079
command mkdir -p " $VERSION_PATH " && \
@@ -1126,8 +1147,7 @@ nvm_install_iojs_binary() {
1126
1147
fi
1127
1148
if (
1128
1149
[ " $NVM_INSTALL_ERRORED " != true ] && \
1129
- echo " WARNING: checksums are currently disabled for io.js" >&2 && \
1130
- # nvm_checksum "$tmptarball" "$sum" && \
1150
+ nvm_checksum " $tmptarball " " $sum " " sha256" && \
1131
1151
command tar -x${tar_compression_flag} f " $tmptarball " -C " $tmpdir " --strip-components 1 && \
1132
1152
command rm -f " $tmptarball " && \
1133
1153
command mkdir -p " $VERSION_PATH " && \
0 commit comments