#!/bin/bash ################################################################################ # Author: Fred (support@qo-op.com) # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized ME="${0##*/}" echo "EXECUTE $ME ($1=phone, $2=guilde)" phone="$1" guilde="$2" message="$(cat /tmp/${phone}_message)" ######################################################################## echo "## GET STATION G1PUB" ######################################################################## YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) || er+=" ipfs daemon not running" [[ ! -f /home/${YOU}/.zen/secret.dunikey ]] && echo "Crypto is missing... please provide /home/${YOU}/.zen/secret.dunikey by installing 'astrXbian' TestNet" && exit 1 G1PUB=$(cat /home/${YOU}/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) ## LOG echo "${phone};${guilde};${message}" >> /home/${YOU}/.zen/SMS/received.log ######################################################################## echo "## sha256sum($phone)" ######################################################################## phonehash=$(echo $phone | sha256sum | cut -d ' ' -f1) ######################################################################## echo "=> ${phonehash}" ######################################################################## htest=$(ls /home/${YOU}/.zen/SMS/PHONE/${phonehash} 2>/dev/null) if [[ $htest ]]; then NEW=0 xzuid=$(cat "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/xzuid.txt") echo "OK $phone already registered it is $xzuid" else mkdir -p /home/${YOU}/.zen/SMS/PHONE/${phonehash}/ fi if [[ ! $xzuid ]]; then NEW=1 ######################################################################## echo "## GESTION IDENTITES: G1 + NEXTCLOUD + QRCODE" ######################################################################## ## MAKE UNIQ xzuid xzuid=$($MY_PATH/diceware.sh 1 | xargs)${RANDOM:0:5} while [[ "$(cat /home/${YOU}/.zen/SMS/PHONE/*/xzuid.txt)" == "${xzuid}" ]] do xzuid=$($MY_PATH/diceware.sh 1 | xargs)${RANDOM:0:5} done echo "$xzuid" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/xzuid.txt echo "=> $xzuid + NOUVEAU +" ######################################################################## echo "## $xzuid / $phone => NEW DUNIKEY & QRCODE" ######################################################################## echo "#!/bin/bash sudo gammu sendsms TEXT \"$phone\" -text \"Heureux de vous accueillir. $xzuid est votre nouvelle Identité Interplanétaire MadeInZion/Astroport.\"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/$(date -u +%s%N | cut -b1-13).tosend.sh ######################################################################## echo "## MAKE secret.dunikey" ######################################################################## $MY_PATH/key_create_dunikey.py "$xzuid" "$phone" [[ ! $? == 0 ]] && echo "FAILED" && exit 1 g1pub=$(cat /tmp/secret.dunikey | grep "pub" | cut -d ' ' -f 2) g1sec=$(cat /tmp/secret.dunikey | grep "sec" | cut -d ' ' -f 2) echo $g1pub > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/g1pub.txt echo "#!/bin/bash sudo gammu sendsms TEXT \"$phone\" -text \"Votre identifiant est $xzuid, votre mot de passe sera ce numéro de téléphone : $phone'.\"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/$(date -u +%s%N | cut -b1-13).tosend.sh ######################################################################## echo "## QRCODES" ######################################################################## qrencode -s 6 -o "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/QR.png" "$g1pub" echo "# CREATE 4 DIGIT PASS" PASS=$(echo "${RANDOM}${RANDOM}${RANDOM}" | tail -c-5) && echo "$PASS" > /tmp/${xzuid}.pin echo "# SSLSEC QR CODE" echo "$g1sec" > /tmp/${xzuid}.sec openssl enc -aes-256-cbc -salt -in /tmp/${xzuid}.sec -out "/tmp/${xzuid}.sec.ssl" -k $PASS sslsec=$(cat /tmp/${xzuid}.sec.ssl | base58) qrencode -s 6 -o "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/QRSEC.png" "$sslsec" echo "## $sslsec ($PASS) => /home/${YOU}/.zen/SMS/PHONE/${phonehash}/QRSEC.png" ######################################################################## echo "## SAVING /home/${YOU}/.zen/SMS/PHONE/${phonehash}/secret.dunikey.encrypt" ######################################################################## $MY_PATH/natools.py encrypt -p $G1PUB -i /tmp/secret.dunikey -o /home/${YOU}/.zen/SMS/PHONE/${phonehash}/secret.dunikey.encrypt [[ ! $? == 0 ]] && echo "FAILED" && exit 1 ######################################################################## echo "CREATING FAKE AVATAR" ######################################################################## $MY_PATH/timeout.sh -t 10 curl -s https://thispersondoesnotexist.com/image -o /home/${YOU}/.zen/SMS/PHONE/${phonehash}/avatar.jpg [[ $? == 0 ]] && echo "#!/bin/bash sudo gammu sendsms TEXT \"$phone\" -text \"Nous venons de créer une photo de profil anonyme pour votre avatar ${xzuid}/${phone}\"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/$(date -u +%s%N | cut -b1-13).tosend.sh if [[ -f /home/${YOU}/.zen/SMS/PHONE/${phonehash}/avatar.jpg ]]; then ######################################################################## echo "GCHANGE+ PROFILE" ######################################################################## $MY_PATH/timeout.sh -t 10 $MY_PATH/jaklis/jaklis.py -k /tmp/secret.dunikey -n "https://data.gchange.fr" set --name "${xzuid}" --avatar "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/avatar.jpg" #GCHANGE+ [[ $? == 0 ]] && echo "#!/bin/bash sudo gammu sendsms TEXT \"$phone\" -text \"Utilisez https://gchange.fr quittez la monnaie des Banques et échangez gratuitement en JUNE : https://monnaie-libre.fr \"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/$(date -u +%s%N | cut -b1-13).tosend.sh ######################################################################## echo "CESIUM+ PROFILE" ######################################################################## $MY_PATH/timeout.sh -t 10 $MY_PATH/jaklis/jaklis.py -k /tmp/secret.dunikey -n "https://g1.data.e-is.pro" set --name "${xzuid}" --avatar "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/avatar.jpg" #CESIUM+ [[ $? == 0 ]] && echo "#!/bin/bash sudo gammu sendsms TEXT \"$phone\" -text \"Recevez les primes de vos missions sur votre portefeuille libre https://cesium.app - $g1pub -\"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/$(date -u +%s%N | cut -b1-13).tosend.sh fi if [[ -f /var/www/nextcloud/occ ]]; then ######################################################################## echo "## NEXTCLOUD : ${xzuid} / ${phone} " ######################################################################## sudo su -s /bin/sh www-data -c "export OC_PASS=\"${phone}\" && php /var/www/nextcloud/occ user:add --password-from-env --group=\"${guilde}\" --display-name=\"${xzuid}\" ${xzuid}" [[ $? == 0 ]] && echo "#!/bin/bash sudo gammu sendsms TEXT \"$phone\" -text \"Quittez les GAFAM! Synchronisez votre smartphone avec NEXTCloud chez un ami du réseau de %MAKER https://copylaradio.com - DEMO - https://taurus.copylaradio.com\"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/$(date -u +%s%N | cut -b1-13).tosend.sh fi ######################################################################## echo "## Encrypt ${phone} into /home/${YOU}/.zen/SMS/PHONE/${phonehash}/passwd.encrypt" ######################################################################## echo ${phone} > /tmp/${phone}_phone $MY_PATH/natools.py encrypt -p $G1PUB -i /tmp/${phone}_phone -o /home/${YOU}/.zen/SMS/PHONE/${phonehash}/passwd.encrypt [[ ! $? == 0 ]] && echo "FAILED" && exit 1 ######################################################################## echo "## Encrypt ${xzuid}.pin into /home/${YOU}/.zen/SMS/PHONE/${phonehash}/pin.encrypt" ######################################################################## $MY_PATH/natools.py encrypt -p $G1PUB -i /tmp/${xzuid}.pin -o /home/${YOU}/.zen/SMS/PHONE/${phonehash}/pin.encrypt [[ ! $? == 0 ]] && echo "FAILED" && exit 1 else echo "=> $xzuid OK" fi ######################################################################## echo "## GESTION RELATION PHONE / GUILDE : ${phone} / ${guilde}" ######################################################################## ## NOUVELLE INSCRIPTION [[ ! -f /home/${YOU}/.zen/SMS/GUILDES/${guilde}/INPUT/${phone} ]] && echo "#!/bin/bash sudo gammu sendsms TEXT \"$phone\" -text \"Bienvenue ${xzuid}. Continuez votre inscription au JEu avec votre actuelle identité 'Prénom Nom' sur https://oasis.astroport.com\"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/0000000000000.tosend.sh ## MEMORISATION DU MESSAGE dans GUILDES/${guilde}/INPUT/ mkdir -p /home/${YOU}/.zen/SMS/GUILDES/${guilde}/INPUT/ echo "${message}" >> /home/${YOU}/.zen/SMS/GUILDES/${guilde}/INPUT/${phone} ## LIEN vers GUILDES/${guilde} dans PHONE/${phonehash}/GUILDES/ mkdir -p /home/${YOU}/.zen/SMS/PHONE/${phonehash}/GUILDES/ ln -s /home/${YOU}/.zen/SMS/GUILDES/${guilde} /home/${YOU}/.zen/SMS/PHONE/${phonehash}/GUILDES/${guilde} ## LIEN vers PHONE/${phonehash} dans GUILDES/${guilde}/MEMBERS/ mkdir -p mkdir -p /home/${YOU}/.zen/SMS/GUILDES/${guilde}/MEMBERS/ ln -s /home/${YOU}/.zen/SMS/PHONE/${phonehash} /home/${YOU}/.zen/SMS/GUILDES/${guilde}/MEMBERS/${phone} ######################################################################## ## BUG: gammu-smsd HACK (must be stop to send response sms) ## Création de script d'envoi de SMS après gammu-smsd stop ######################################################################## chmod 775 /home/${YOU}/.zen/SMS/PHONE/${phonehash}/*.tosend.sh ######################################################################## ## TAURUS LIVE DEMO PRINT ID + MESSAGE # Disable power off = https://github.com/pklaus/brother_ql/issues/50 # echo -n -e '\x1b\x69\x55\x41\x00\x00' | brother_ql -m QL-700 -p /dev/usb/lp0 send - ## IMAGE MAGICK https://legacy.imagemagick.org/Usage/layers/#append ######################################################################## if [[ -e /dev/usb/lp0 ]]; then ts=$(date -u +%s%N | cut -b1-13) # PRINT QR.png CREDENTIALS AND QR CODES brother_ql_create --model QL-700 /home/${YOU}/.zen/SMS/PHONE/${phonehash}/QR.png --label-size 62 > /tmp/${ts}_QR.bin brother_ql_print /tmp/${ts}_QR.bin /dev/usb/lp0 # PRINT ${xzuid} ${phone} convert -background White label:"${xzuid} ${phone}" -append /tmp/${ts}_ID.png brother_ql_create --model QL-700 /tmp/${ts}_ID.png --label-size 62 > /tmp/${ts}_ID.bin brother_ql_print /tmp/${ts}_ID.bin /dev/usb/lp0 # PRINT QRSEC.png brother_ql_create --model QL-700 /home/${YOU}/.zen/SMS/PHONE/${phonehash}/QRSEC.png --label-size 62 > /tmp/${ts}_QRSEC.bin brother_ql_print /tmp/${ts}_QRSEC.bin /dev/usb/lp0 fi exit 0