diff options
author | davidovski <david@davidovski.xyz> | 2022-02-17 02:15:19 +0000 |
---|---|---|
committer | davidovski <david@davidovski.xyz> | 2022-02-17 02:15:19 +0000 |
commit | 35dcb815e217c1135012ba81616496c3ad10b3f5 (patch) | |
tree | c1190a25e1cc2ad74674a06f1faac8a0b9db871e /src/validate.sh | |
parent | 1117f2bef50ec65aa6bfe55e8e22beb5be092275 (diff) |
added file installing
Diffstat (limited to 'src/validate.sh')
-rw-r--r-- | src/validate.sh | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/validate.sh b/src/validate.sh new file mode 100644 index 0000000..4f73729 --- /dev/null +++ b/src/validate.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +validate_checksum () { + local file=$1 + local checksum=$2 + [ ! -f $file ] && return 1 + [ "$(md5sum $file | awk '{ print $1; }')" = "$checksum" ] +} + +validate_sig () { + local pkg_file=$1 + local info_file=$2 + local keychain + + local sig_encoded=$(sed -rn "s/^SIGNATURE=(.*)/\1/p" $info_file) + local sig_file="${pkg_file}.sig" + + echo $sig_encoded | tr ' ' '\n' | base64 -d > $sig_file + + for key in ${KEYCHAIN_DIR}/*.pub; do + ${VERBOSE} && printf "${LIGHT_BLACK}Checking verification against $(basename $key) for $(basename $pkg_file)\n${RESET}" + openssl dgst -verify $key -signature $sig_file $pkg_file | grep -q "OK" && return 0 + done + return 1 +} |