From c57cc485fcaffe9d43c32048b119363660b6a5a1 Mon Sep 17 00:00:00 2001 From: qo-op Date: Thu, 26 Dec 2019 17:44:26 +0100 Subject: [PATCH] SHA256 PHONE compatibility & SWARMKEY GPG CYPHER --- _chain | 2 +- _comments | 3 +++ _nanodate | 2 +- _publishkey.gpg | Bin 1288 -> 1288 bytes shell/cron_IPFS_open_SSH.sh | 18 +++++++++++------- shell/functions.sh | 44 +++++++++++++++++++++++++++++++------------- shell/init_keys.sh | 8 ++++++-- shell/sms_AIDE.sh | 18 +++++++++--------- shell/sms_PAY.sh | 24 +++++++++++++++--------- 9 files changed, 77 insertions(+), 42 deletions(-) diff --git a/_chain b/_chain index f09e9e6..a1c8920 100755 --- a/_chain +++ b/_chain @@ -1 +1 @@ -QmbVfLJ9UsnyV3Si9UgZVS4srCnL1c2Gqt7XissCV4iC83 +QmWEyZDyn7XMM3pDFCBkDqC6XPAraTSLHbVD3h7geunNWy diff --git a/_comments b/_comments index b7bbce3..0c75af6 100755 --- a/_comments +++ b/_comments @@ -178,3 +178,6 @@ OK 2019-12-20: NOW 2019-12-21: Various 2019-12-24: +2019-12-26: SWARMKEY +2019-12-26: ipfs p2p listen /x/$YOU /ip4/127.0.0.1/tcp/80 +2019-12-26: ./wallets/sha256sum(PHONE) diff --git a/_nanodate b/_nanodate index 506b75f..95fdd35 100755 --- a/_nanodate +++ b/_nanodate @@ -1 +1 @@ -1577203467543924569 +1577378596986046001 diff --git a/_publishkey.gpg b/_publishkey.gpg index d9c30e259497e617dc898059a5bc80273087d18c..2b7049901c18943d74b54cc9773c61bc4ea9f1da 100755 GIT binary patch literal 1288 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 "$PINFILE" echo "${GPGPASS}" | gpg -q --output "$GPGPINFILE" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$PINFILE" + echo "${SWARMKEY}" | gpg -q --output "$GPGPINFILE.swarm" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$PINFILE" PIN=$(cat "$PINFILE" | xargs) echo "" > "$PINFILE" - echo "114" > "$G1COUNTFILE" + echo "314" > "$G1COUNTFILE" echo "$PUBKEY" > "$PUBKEYFILE" echo "$COIN" > "$UNITFILE" echo "$MASTERPHONE" > "$SMSNODE" @@ -397,39 +407,46 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" ###################################################################### if [[ ! -f "$GPGPINFILE" ]] then + HASH=$(echo $PHONE | sha256sum | cut -d ' ' -f 1) + # ------------8<------------------ # WALLET MIGRATION -> CRYPT PIN (For Old G1sms clear PIN WALLETs...) - # ADD NEW PARAMS TO WALLET - ####################### - # 4 derniers chiffres du numéro de téléphone - echo "$MASTERPHONE" > "$SMSNODE" - TAIL=${PHONE:8:4} - # No UIDNA yet. Create new - UIDNA=$(./shell/diceware.sh 1 | xargs) - # Check if already existing among all swarm wallets - while [[ $(grep -Rwl $UIDNA$TAIL ./wallets_swarm/*/*.uidna) ]]; do UIDNA=$(./shell/diceware.sh 1 | xargs); done - echo "$UIDNA$TAIL" > "$UIDNAFILE" + if [[ ! -s "$UIDNAFILE" ]]; then + # ADD NEW PARAMS TO WALLET + ####################### + # 4 derniers chiffres du numéro de téléphone + TAIL=${PHONE:8:4} + # No UIDNA yet. Create new + UIDNA=$(./shell/diceware.sh 1 | xargs) + # Check if already existing among all swarm wallets + while [[ $(grep -Rwl $UIDNA$TAIL ./wallets_swarm/*/*.uidna) ]]; do UIDNA=$(./shell/diceware.sh 1 | xargs); done + echo "$UIDNA$TAIL" > "$UIDNAFILE" + fi + echo "$MASTERPHONE" > "$SMSNODE" PIN=$(cat "$PINFILE" | xargs) log "__SUB:sms_INIT_ACCOUNT: Old G1sms wallet ;) SECURITY HOLE... Chiffrage PGP du PIN !!!" echo "${GPGPASS}" | gpg -q --output "$GPGPINFILE" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$PINFILE"; + echo "${SWARMKEY}" | gpg -q --output "$GPGPINFILE.swarm" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$PINFILE"; else # ------------>8------------------ log "__SUB:sms_INIT_ACCOUNT: Déchiffrage PGP PIN..." # GPG decypher PIN # TODO make decypher less stress on filesystem, use /tmp and ramdisk echo "${GPGPASS}" | gpg -d -q --output "$PINFILE" --yes --pinentry-mode loopback --passphrase-fd 0 "$GPGPINFILE" + [[ ! -f $PINFILE ]] && echo "${SWARMKEY}" | gpg -d -q --output "$PINFILE" --yes --pinentry-mode loopback --passphrase-fd 0 "$GPGPINFILE.swarm" PIN=$(cat "$PINFILE" | xargs) echo "" > "$PINFILE"; fi # CYPHER EMAIL FILE - if [[ ! -f "$GPGMAILFILE" ]]; then + if [[ ! -f "$GPGMAILFILE.swarm" ]]; then # ------------8<------------------ # NO .gpg file, CREATING it (OLD G1sms accounts) if [ -f "$MAILFILE" ]; then MAIL=$(cat "$MAILFILE"); echo "${GPGPASS}" | gpg -q --output "$GPGMAILFILE" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$MAILFILE"; + echo "${SWARMKEY}" | gpg -q --output "$GPGMAILFILE.swarm" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$MAILFILE"; else MAIL=""; fi @@ -437,6 +454,7 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" else # Already existing gpg DECODING IT echo "${GPGPASS}" | gpg -d -q --output "$MAILFILE" --yes --pinentry-mode loopback --passphrase-fd 0 "$GPGMAILFILE" + [[ -f "$GPGMAILFILE.swarm" ]] && echo "${SWARMKEY}" | gpg -d -q --output "$MAILFILE" --yes --pinentry-mode loopback --passphrase-fd 0 "$GPGMAILFILE.swarm" MAIL=$(cat "$MAILFILE"); echo "" > "$MAILFILE"; fi diff --git a/shell/init_keys.sh b/shell/init_keys.sh index b4e1619..fa9baf1 100755 --- a/shell/init_keys.sh +++ b/shell/init_keys.sh @@ -21,6 +21,10 @@ YOU=$(ps aux --sort=+utime | grep ipfs | tail -n 1 | cut -d " " -f 1) export GPGPASS=$(cat "/home/$YOU/.ipfs/config" | jq '.Identity.PrivKey' | sed s/\"//g) if [ ! $GPGPASS ]; then echo "FATAL ERROR:: IPFS Node.Identity.PrivKey GPGPASS EMPTY"; exit; fi +# GET SWARM KEY G1sms+ .ipfs/swarm.key +export SWARMKEY=$(cat "/home/$YOU/.ipfs/swarm.key" | tail -n 1) +if [ ! $SWARMKEY ]; then echo "FATAL ERROR:: .ipfs/swarm.key EMPTY"; exit; fi + ################################################################## # G1sms+ Swarm KEYS ################################################################## @@ -31,8 +35,8 @@ if [[ -f "${GPATH}/g1sms.pub.key" && -f "${GPATH}/g1sms.priv.key" ]]; then export NODE_G1PUBKEY=$(cat "${GPATH}/g1sms.pub.key") export NODE_G1PRIVKEYFILE="${GPATH}/g1sms.priv.key" else - echo "ATTENTION!! Vous devez posséder la clef du G1 Wallet utilisé par le SWARM G1sms!!" - ./shell/parle.sh "Les clefs du portefeuille essaim G1 SMS sont absente. Au revoir." + echo "ATTENTION!! Vous devez installer une clef de G1 Wallet!!" + ./shell/parle.sh "Il manque les Clefs du portefeuille G1 de votre noeud. Au revoir." echo "Fichiers manquants:" echo "${GPATH}/g1sms.pub.key" echo "${GPATH}/g1sms.priv.key" diff --git a/shell/sms_AIDE.sh b/shell/sms_AIDE.sh index 0bd21ad..7c182dd 100755 --- a/shell/sms_AIDE.sh +++ b/shell/sms_AIDE.sh @@ -10,21 +10,21 @@ log "X sms_AIDE.sh ($1=phone)" sms_INIT_ACCOUNT "$1" "NOSMS" -MESS="[Aide] -N Pseudo (membre ou nom de portefeuille) : Création portefeuille +MESS="N Pseudo : Création Portefeuille rattaché à Pseudo +S : Synchro Solde +P 06nnnnnnnn 300 : Payer 300 à 06nnnnnnnn U G1/DU/LOVE : Unité -S : Solde -P 06nnnnnnnn 300 : Payer 300 à 06nnnnnnnn" +" # Send response SMS sms_SEND "$1" "$MESS" -MESS="EMAIL moi@email : Indiquer son email -VIR 50 Pseudo : Virer 50 à Pseudo (membre ou Portefeuille SMS)" +MESS="EMAIL moi@email : Email pour commande G1Billets +BILL n : Recevoir 6 G1Billets remplis de n LOVE" sms_SEND "$1" "$MESS" -MESS="REC 50 Dest S 4 : Virer 50 à Dest pendant 4 Semaines (J/S/M/A) -BILL n : Recevoir 6 G1Billets remplis de n LOVE par email! -https://g1sms.fr - $ADMINPSEUDO ($ADMINPHONE)" +MESS="VIR 50 Pseudo : Virer 50 à Pseudo (membre ou Portefeuille SMS) +REC 50 Dest S 4 : Virer 50 à Dest, 4 Semaines (J/S/M/A) +Contact : $ADMINPSEUDO ($ADMINPHONE) - https://g1sms.fr" sms_SEND "$1" "$MESS" log "END sms_AIDE.sh" diff --git a/shell/sms_PAY.sh b/shell/sms_PAY.sh index 3edb8c2..f2add6a 100755 --- a/shell/sms_PAY.sh +++ b/shell/sms_PAY.sh @@ -17,6 +17,8 @@ pin=$PIN if [[ $UNKNOWN == "unknown" ]]; then sms_ERROR "$phone" "Porte-monnaie inconnu. Envoyez N (suivi de votre Pseudo membre) pour le créer." exit +else + log "PIN: $pin" fi ########################################################### @@ -40,8 +42,10 @@ if [[ -f "./wallets_swarm/$PHONEDEST/$PHONEDEST.pub" ]] then PUBKEYDEST=$(cat "./wallets_swarm/$PHONEDEST/$PHONEDEST.pub") UNITDEST=$(cat "./wallets_swarm/$PHONEDEST/$PHONEDEST.unit") + log "__SUB:sms_PAY.sh: PUBKEYDEST found in swarn... $PUBKEYDEST" else # NO, then create NEW Wallet + log "__SUB:sms_PAY.sh: Creating Account for... $PHONEDEST" sms_INIT_ACCOUNT "$PHONEDEST" # Refreshed new values PUBKEYDEST="$PUBKEY" @@ -49,11 +53,13 @@ else fi # Payement -PAY=$(./shell/timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$VIR" --output="$PUBKEYDEST" --comment="[G1sms+] PAY $AMOUNT $UNIT" -y) +log "./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$VIR" --output="$PUBKEYDEST"" +PAY=$(./shell/timeout.sh -t 30 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$VIR" --output="$PUBKEYDEST" --comment="[G1sms+] PAY $AMOUNT $UNIT" -y) if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" || "$PAY" == "" ]]; then - new=$(./shell/checknodes.sh "BAN") - sms_ERROR "$phone" "Problème de payement avec silkaj (changement de serveur $new): $PAY"; - log "__SUB:sms_PAY.sh: Problème de payement avec silkaj $new : $PAY" + sms_ERROR "$phone" "PIN : $PAY ? Voyez vous votre code secret: $pin? +NON, Reinitaliser Compte. Envoyer: RAZ +OUI, Bourage Blockchain. Envoyer: S"; + log "__SUB:sms_PAY.sh: Problème de payement avec silkaj : $PAY" exit else # OK: Sync g1cents TODO check move_g1cents function and generalize on all silkaj transactions @@ -64,11 +70,11 @@ fi sleep 2 # + G1SMS Commission -COM=$(./shell/timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$PERCENT" --output="$NODE_G1PUBKEY" --comment="[G1sms+] Commission" -y) -if [[ "$(echo $COM | cut -d '|' -f 1)" == "KO" || "$PAY" == "" ]]; then - new=$(./shell/checknodes.sh "BAN") - sms_ERROR "$phone" "Problème de payement avec silkaj (changement de serveur $new): $COM"; - log "__SUB:sms_PAY.sh: Problème de payement avec silkaj $new : $COM" +log "./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$PERCENT" --output="$NODE_G1PUBKEY"" +COM=$(./shell/timeout.sh -t 30 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$PERCENT" --output="$NODE_G1PUBKEY" --comment="[G1sms+] P Commission" -y) +if [[ "$(echo $COM | cut -d '|' -f 1)" == "KO" || "$COM" == "" ]]; then + sms_ERROR "$phone" "Problème de bourrage blockchain : $COM"; + log "__SUB:sms_PAY.sh: Problème de payement avec silkaj : $COM" exit else # OK: Sync g1cents