Commit 4440189b authored by Lorenz Wenner's avatar Lorenz Wenner

20200212

parent 7e745e43
#!/bin/sh
#!/bin/bash
WORKINGDIR=$PWD
if [ ! -L secret ]; then
find ../.. -wholename "*release_keys/secret*" > secret_paths
num_secrets=$(wc -l secret_paths | awk '{print $1}')
if [ $num_secrets -eq "0" ]; then
echo Keine geheimen Schlüssel unterhalb von $(dirname $(dirname $(pwd))) gefunden.
if [ "$num_secrets" -eq "0" ]; then
echo Keine geheimen Schlüssel unterhalb von "$(dirname $(dirname $(pwd)))" gefunden.
read -p "Wo liegt dein Signaturschlüssel?: " SECRETPATH
echo Danke. Lege Symlink \"secret\" dorthin an.
ln -s $SECRETPATH secret
elif [ $num_secrets -eq "1" ];then
echo Geheimen Schlüssel unter $(cat secret_paths) gefunden. Lege Symlink \"secret\" dorthin an.
ln -s $(cat secret_paths) secret
ln -s "$SECRETPATH" secret
elif [ "$num_secrets" -eq "1" ];then
echo Geheimen Schlüssel unter "$(cat secret_paths)" gefunden. Lege Symlink \"secret\" dorthin an.
ln -s "$(cat secret_paths)" secret
else
echo
fi
fi
if [ -d gluon ]; then
cd gluon;git pull
cd gluon || exit ;git pull
else
git clone https://github.com/freifunk-gluon/gluon.git
fi
cd gluon
cd gluon || exit
if [ -d site ]; then
cd site;git pull
cd site || exit ;git pull
else
git clone git@git.ffnw.de:ffnw-firmware/siteconf.git gluon/site
fi
cd $WORKINGDIR
cd "$WORKINGDIR" || exit
SITECONF=gluon/site/site.conf
#read -p "Wo liegt dein Signaturschlüssel? [release_keys]: " SECRETPATH
#SECRETPATH=${SECRETPATH:-$HOME/Dokumente/Freifunk/Firmware/release_keys}
read -p "Welches Release willst du signieren? [20191224]: " RELEASE
RELEASE=${RELEASE:-20191224}
read -p "Welches Release willst du signieren? [20200212]: " RELEASE
RELEASE=${RELEASE:-20200212}
FILE=stable.manifest
MYPUBKEY=$(ecdsakeygen -p < secret)
cd "$FREIFUNKPATH" || exit
......@@ -39,14 +39,14 @@ cd "$FREIFUNKPATH" || exit
#~ for VPN in fastd l2tp; do for RELEASE in $(git -C gluon/site/ tag | grep -E '(20171220|201[89][0-9]{4}|20[2-9][0-9]{4})');do scp files.ffnw.de:/var/www/dev/firmware/$VPN/$RELEASE/sysupgrade/stable.manifest manifests/$VPN.$RELEASE.manifest;done;done
for VPN in l2tp fastd; do
wget -qO $VPN.$RELEASE.$FILE https://firmware.ffnw.de/$VPN/$RELEASE/sysupgrade/$FILE
csplit -s -f $VPN.$RELEASE.$FILE-part $VPN.$RELEASE.$FILE '/---/'
sed -i '1d' $VPN.$RELEASE.$FILE-part01
wget -qO "$VPN.$RELEASE.$FILE" "https://firmware.ffnw.de/$VPN/$RELEASE/sysupgrade/$FILE"
csplit -s -f "$VPN.$RELEASE.$FILE-part" "$VPN.$RELEASE.$FILE" '/---/'
sed -i '1d' "$VPN.$RELEASE.$FILE-part01"
while read sign; do
ecdsaverify -s "$sign" -p "$MYPUBKEY" "$VPN.$RELEASE.$FILE-part00"
result=$?
if [ $result -eq "0" ]; then
echo "Die Signatur $(expr substr "${sign}" 1 6)... passt zu deinem eigenen öffentlichen Schlüssel. Anscheinend hast du das Manifest zur ${VPN}-Firmware des ${RELEASE}er Releases bereits signiert. Hier gibt es nichts mehr zu tun."
echo Die Signatur "${sign:0:6}"... passt zu deinem eigenen öffentlichen Schlüssel. Anscheinend hast du das Manifest zur "${VPN}"-Firmware des "${RELEASE}"er Releases bereits signiert. Hier gibt es nichts mehr zu tun.
validity=false
break
fi
......@@ -55,25 +55,25 @@ for VPN in l2tp fastd; do
ecdsaverify -s "$sign" -p "$pubkey" "$VPN.$RELEASE.$FILE-part00"
result=$?
if [ $result -eq "0" ]; then
echo "Die Signatur $(expr substr "${sign}" 1 6)... ist valide und stammt von $(grep -m1 $pubkey $SITECONF | sed 's/[^,]*, --\(.*\)/\1/g')"
echo Die Signatur "${sign:0:6}"... ist valide und stammt von "$(grep -m1 "$pubkey" $SITECONF | sed 's/[^,]*, --\(.*\)/\1/g')"
validity=true
break
fi
done
if [ "$validity" = "false" ]; then
echo "Signatur $(expr substr "${sign}" 1 6)... ist nicht valide. Breche hier ab"
echo "Signatur ${sign:0:6}... ist nicht valide. Breche hier ab"
break
fi
done < $VPN.$RELEASE.$FILE-part01
done < "$VPN.$RELEASE.$FILE-part01"
if [ "$validity" = "true" ]; then
echo "Alle vorhandenen Signaturen sind valide. Erzeuge jetzt eigene Signatur"
gluon/contrib/sign.sh secret $VPN.$RELEASE.$FILE
gluon/contrib/sign.sh secret "$VPN.$RELEASE.$FILE"
#folgenden Befehl am besten händisch ausführen, wenn alles andere gelappt hat
echo "Danke für die Signatur! Soll das nun auch von dir signierte manifest $VPN.$RELEASE.$FILE zu firmware.ffnw.de hochgeladen und dort an den entsprechenden Ort kopiert werden? (j/N)"
read answer
if [ "$answer" = "j" ];then
scp $VPN.$RELEASE.$FILE firmware.ffnw.de:~
ssh firmware.ffnw.de "sudo cp $VPN.$RELEASE.$FILE /var/www/dev/firmware/$VPN/$RELEASE/sysupgrade/$FILE"
scp "$VPN.$RELEASE.$FILE" firmware.ffnw.de:~
ssh firmware.ffnw.de sudo cp "$VPN.$RELEASE.$FILE" "/var/www/dev/firmware/$VPN/$RELEASE/sysupgrade/$FILE"
else
echo "ok, es wird erstmal nichts hochgeladen. Falls du das manuell tun möchtest, geht das zB mit folgenden Befehlen:"
echo "scp $VPN.$RELEASE.$FILE firmware.ffnw.de:~"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment