astroport/g1sms/init_keys.sh

164 lines
7.1 KiB
Bash
Raw Normal View History

2020-05-01 15:19:51 +02:00
#!/bin/bash
##################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.2
# License: GPL (http://www.google.com/search?q=GPL)
##################################################################
# CHECK & WARN | CREATE Keys (gpg encrypt, G1wallet, IPNS publish)
##################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
2020-05-07 02:27:11 +02:00
2020-05-11 08:08:34 +02:00
[[ $IPFSNODEID == "" ]] && echo "PROBLEM GETTING IPFSNODEID" && exit 1
2020-05-12 01:17:16 +02:00
[[ $YOU == "" ]] && echo "PROBLEM GETTING YOU" && exit 1
2020-05-11 08:02:28 +02:00
2020-05-11 03:40:27 +02:00
NANODATE=$(date -u +%s%N) #1569692075385428020
2020-05-11 03:28:49 +02:00
## IS IT A SMS NODE (gammu-smsd is installed)??
if [[ $(which gammu-smsd) ]]; then
[[ ! $MASTERPHONE ]] && echo "MISSING MASTERPHONE run from init.sh" && exit 1
2020-05-22 22:59:04 +02:00
echo $MASTERPHONE > /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1sms
2020-05-11 03:28:49 +02:00
else
2020-05-22 22:59:04 +02:00
if [ -f /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1sms ]; then rm -f /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1sms; fi
2020-05-11 03:28:49 +02:00
fi
NODE_G1PUBKEY=$(cat /home/$YOU/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
2020-05-11 03:28:49 +02:00
[[ $NODE_G1PUBKEY == "" ]] && echo "ERROR NODE_G1PUBKEY empty !! Please INIT SSB LAYER..." && exit 1
2020-05-01 15:19:51 +02:00
2020-05-28 20:22:16 +02:00
echo "
2020-05-11 01:16:16 +02:00
$NANODATE
_ _ __ __
(_)___ (_) /_ / /_____ __ _______
/ / __ \/ / __/ / //_/ _ \/ / / / ___/
/ / / / / / /_ / ,< / __/ /_/ (__ )
/_/_/ /_/_/\__/ /_/|_|\___/\__, /____/
/____/
2020-05-21 02:34:16 +02:00
I am $YOU on $IPFSNODEID
2020-05-11 01:16:16 +02:00
2020-05-28 20:22:16 +02:00
" > /dev/null
2020-05-11 01:16:16 +02:00
2020-05-01 15:19:51 +02:00
##################################################################
##################################################################
IPFSPrivKey=$(cat /home/$YOU/.ipfs/config | jq -r '.Identity.PrivKey') #"
2020-05-07 02:27:11 +02:00
export IPFSPrivKey="${IPFSPrivKey:0:24}" #
2020-05-05 04:41:17 +02:00
if [ ! $IPFSPrivKey ]; then echo "FATAL ERROR:: IPFS Node.Identity.PrivKey IPFSPrivKey EMPTY"; exit; fi
2020-05-27 17:44:38 +02:00
# TODO: FINISH to REMOVE THAT KEY (it makes system dependent on "ipfs id") and BETTER USE dunikey for cyphering
2020-05-01 15:19:51 +02:00
##################################################################
# G1sms+ Swarm KEYS
##################################################################
# G1sms Service - G1Wallet
#
2020-05-05 04:41:17 +02:00
# ONE TIME GIVE NODE_UIDNA
2020-05-11 08:02:28 +02:00
if [[ ! -f /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_uidna ]]; then
2020-05-01 15:19:51 +02:00
# CREATE NODE G1 KEYS AND FILES
2020-05-11 01:16:16 +02:00
2020-05-07 02:27:11 +02:00
####################################################################
# GIVE NAME TO NODE G1 WALLET: "6789diceware"
2020-12-05 00:10:19 +01:00
# And write /home/$YOU/.zen/g1sms/.12D3KooW***/G1SSB/(_files)
2020-05-07 02:27:11 +02:00
####################################################################
2020-05-10 19:52:16 +02:00
PRE=${ADMINPHONE:8:4}
ZUID=$(/home/$YOU/.zen/astroport/zen/tools/diceware.sh 1 | xargs)
2020-05-05 04:41:17 +02:00
# Check if already existing among all swarm wallets G1SSB or G1SMS
while [[ $(grep -Rwl "$PRE$ZUID" /home/$YOU/.zen/ipfs_swarm/.*/*/_uidna 2>/dev/null) ]]; do ZUID=$(/home/$YOU/.zen/astroport/zen/tools/diceware.sh 1 | xargs); done
2020-05-01 15:19:51 +02:00
NODE_UIDNA="$PRE$ZUID"
2020-05-11 01:16:16 +02:00
2020-05-28 20:22:16 +02:00
echo "
2020-05-11 01:16:16 +02:00
__ __________ _ _____
/ / / / _/ __ \/ | / / |
/ / / // // / / / |/ / /| |
/ /_/ // // /_/ / /| / ___ |
2020-05-11 01:44:29 +02:00
\____/___/_____/_/ |_/_/ |_| create
2020-05-11 01:16:16 +02:00
$NODE_UIDNA
2020-05-28 20:22:16 +02:00
" > /dev/null
if [[ -f /home/$YOU/.zen/secret.astroport.key ]]; then
#[[ ! $(cat /home/$YOU/.zen/secret.astroport.key | grep -F 'NODE_UIDNA' )]]
echo "NODE_UIDNA=$NODE_UIDNA" >> /home/$YOU/.zen/secret.astroport.key
2020-05-11 02:38:51 +02:00
else
echo "ERROR NO /home/$YOU/.zen/secret.astroport.key !!" && exit 1
2020-05-11 02:38:51 +02:00
fi
2020-05-12 01:15:39 +02:00
chmod 600 /home/$YOU/.zen/secret.astroport.key
2020-05-11 01:44:29 +02:00
source /home/$YOU/.zen/secret.astroport.key
2020-05-05 04:41:17 +02:00
# WRITE NODE_UIDNA
echo "$NODE_UIDNA" > /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_uidna ####### _uidna
echo $IPFSNODEID > /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_ipfs.id ####### _ipfs.id
echo $NANODATE > /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_nanodate ####### _nanodate
2020-05-05 04:41:17 +02:00
############ If sudo without password activated (Raspbian)
# SYSTEM MODIFY hosts & hostname ###########################
2020-12-05 00:10:19 +01:00
# WRITE NODE uidna NAME TO /etc/hosts & .12D3KooW*/_uidna file
2020-05-09 13:00:09 +02:00
# sudo echo "127.0.0.101 $NODE_UIDNA" >> /etc/hosts
# sudo echo "$NODE_UIDNA" > /etc/hostname
2020-05-01 15:19:51 +02:00
############################################################
2020-05-05 04:41:17 +02:00
# TODO rewrite AUTO BACKUP / RESTORE
# tools/natools.py encrypt -p $NODE_G1PUBKEY -i "./authfile" -o "/home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_authfile.swarm.crypt"
2020-05-01 15:19:51 +02:00
2020-05-07 02:27:11 +02:00
# SILKAJ INIT G1 NODE WALLET TODO ACTIVATE
#duniter_server=$(./tools/duniter_getnode.sh)
#TX_IN=$(silkaj -p "$duniter_server" -af --file /home/$YOU/.ssb/secret.dunikey tx --output $SWARM_G1PUBKEY --amount 3.24 --comment "[A.Station] G1SSBIPF ($ADMINPSEUDO) $NODE_UIDNA $IPFSNODEID" -y)
2020-05-01 15:19:51 +02:00
log "__SUB:initkeys.sh: [ADMIN] NODE G1sms+ $NODE_UIDNA : ls /home/$YOU/.zen/ipfs/.$IPFSNODEID"
if [[ $G1SMS == "YES" ]]; then
echo "SENDING SMS to $ADMINPHONE"
2020-05-11 03:28:49 +02:00
sudo gammu-smsd-inject -l TEXT "$ADMINPHONE" -text "[ADMIN] G1sms+ NODE $NODE_UIDNA ($IPFSNODEID)" 1>&2
sudo gammu-smsd-inject -l TEXT "$ADMINPHONE" -text "$ZENID / $ZENPWD" 1>&2
sudo gammu-smsd-inject -l TEXT "$ADMINPHONE" -text "$ZENG1" 1>&2
fi
2020-05-01 15:19:51 +02:00
fi
2020-05-10 19:52:16 +02:00
# COHERENCE TEST
[[ -f /home/$YOU/.zen/secret.astroport.key ]] && source /home/$YOU/.zen/secret.astroport.key || echo "Missing /home/$YOU/.zen/secret.astroport.key" || exit 1
[[ -f /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_uidna ]] && export NODE_UIDNA=$(cat /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_uidna)|| echo "Missing _uidna" || exit 1
2020-05-05 04:41:17 +02:00
2020-05-10 20:44:20 +02:00
## INIT NODE G1 PUB & PRIV KEY
2020-05-27 17:44:38 +02:00
NODE_G1PUBKEY=$G1PUB
2020-05-11 01:16:16 +02:00
[[ ! $NODE_G1PUBKEY ]] && echo "Missing NODE_G1PUBKEY" && exit 1
NODE_PUBSECFILE="/home/$YOU/.ssb/secret.dunikey"
2020-05-11 01:16:16 +02:00
[[ ! $NODE_PUBSECFILE ]] && echo "Missing NODE_PUBSECFILE" && exit 1
2020-05-01 15:19:51 +02:00
##########################################################
# MEMORIZE NODE NANODATE EXECUTION TIME (for ntpdate regular sync)
if [[ -f /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_nanodate ]]; then
last=$(cat /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_nanodate)
2020-05-01 15:19:51 +02:00
timediff=$( echo "${NANODATE} - ${last}" | bc -l )
# NODE TIME SYNC 600 milliards de nanosecondes = 600 s = 10 mn
if [[ $timediff -gt 600000000000 ]]; then
2020-05-05 04:41:17 +02:00
# TODO RUN & LOG ntpdate
#ntpdate pool.ntp.org
#log "__SUB:ntpdate pool.ntp.org: $timediff $(ntpdate pool.ntp.org)"
2020-05-01 15:19:51 +02:00
export NANODATE=$(date -u +%s%N)
fi
echo $NANODATE > /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_nanodate
2020-05-01 15:19:51 +02:00
fi
################################################################
2020-05-11 03:40:27 +02:00
# PRINTER CAPACITIES ??
2020-05-01 15:19:51 +02:00
## IS THERE USB PRINTER CONNECTED?
if [[ -e "/dev/usb/lp0" ]]; then
log "G1CORE: IMPRESSION G1Tag ACTIF .............."
2020-05-11 03:40:27 +02:00
export PRINT=true
echo "$ADRESSE" > /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_where
2020-05-11 03:40:27 +02:00
else
rm -f /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/_where
2020-05-01 15:19:51 +02:00
fi
2020-05-28 20:22:16 +02:00
echo "
2020-05-11 03:05:26 +02:00
______ _____ ____ __ ___ _ __
/ ___/ | / / | / __ \/ |/ / (_)___/ /
\__ \| | /| / / /| | / /_/ / /|_/ / / / __ /
___/ /| |/ |/ / ___ |/ _, _/ / / / / / /_/ /
/____/ |__/|__/_/ |_/_/ |_/_/ /_/ /_/\__,_/
2020-05-11 03:40:27 +02:00
loaded
/home/$YOU/.zen/secret.astroport.key
2020-05-28 20:22:16 +02:00
" > /dev/null
# ls -a /home/$YOU/.zen/ipfs/.$IPFSNODEID/G1SSB/