30 lines
754 B
Bash
Executable File
30 lines
754 B
Bash
Executable File
#!/bin/sh
|
|
|
|
pubkey="/pub.pem"
|
|
file="/tmp/update.tgz.cc"
|
|
echo "### ccOS Update Script ###"
|
|
echo "[+] Starting"
|
|
sleep 1
|
|
echo "[+] Extracting Signature"
|
|
skip=$(expr $(stat -c '%s' $file) - 256)
|
|
if [[ -L $file ]]
|
|
then
|
|
exit 0
|
|
fi
|
|
dd if=/tmp/update.tgz.cc of=sig bs=1 count=256 skip=$skip > /dev/null 2>&1
|
|
truncate -s $skip update.tgz.cc
|
|
check=`openssl dgst -sha256 -verify $pubkey -signature /tmp/sig /tmp/update.tgz.cc`
|
|
if [ "$check" == "Verified OK" ]
|
|
then
|
|
echo "[+] Signature is valid!"
|
|
echo "[+] Upgrading..."
|
|
tar -xvzf /tmp/update.tgz.cc -C /
|
|
rm /tmp/update.tgz.cc /tmp/sig
|
|
echo "[+] Done"
|
|
exit 0
|
|
else
|
|
echo "[-] Signature error, exiting..."
|
|
rm /tmp/update.tgz.cc /tmp/sig
|
|
exit 1
|
|
fi
|