forked from qo-op/G1BILLET
using PGP SALT/PEPPER QRCODE for pay process
This commit is contained in:
parent
29df99b316
commit
7defb00201
25
G1BILLETS.sh
25
G1BILLETS.sh
|
@ -23,15 +23,16 @@ if [[ $MONTANT != "daemon" ]]; then
|
||||||
STYLE="$2"
|
STYLE="$2"
|
||||||
|
|
||||||
DICE=$(cat $MY_PATH/DICE 2>/dev/null) ## HOW MANY WORDS SECRETS
|
DICE=$(cat $MY_PATH/DICE 2>/dev/null) ## HOW MANY WORDS SECRETS
|
||||||
[[ $DICE != ?(-)+([0-9]) ]] && DICE=3
|
[[ $DICE != ?(-)+([0-9]) ]] && DICE=4
|
||||||
echo "$DICE WORDS SECRETS (Define length in $MY_PATH/DICE)"
|
# echo "$DICE WORDS SECRETS (Define length in $MY_PATH/DICE)"
|
||||||
|
|
||||||
## CHECK IF STYLE IS EMAIL => astro IPFS G1BILLET
|
## CHECK IF STYLE IS EMAIL => astro IPFS G1BILLET
|
||||||
if [[ "${STYLE}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then
|
if [[ "${STYLE}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then
|
||||||
echo "ASTROPORT PLAYER DERIVATE KEY"
|
echo "ASTROPORT PLAYER OFFERED G1BILLET"
|
||||||
# echo "PLAYER : $STYLE"
|
# echo "PLAYER : $STYLE"
|
||||||
EMAIL=${STYLE}
|
EMAIL=${STYLE}
|
||||||
STYLE="astro"
|
STYLE="jeu"
|
||||||
|
DICE=3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## STYLE SELECTED: PDF DE 6 BILLETS OR SINGLE
|
## STYLE SELECTED: PDF DE 6 BILLETS OR SINGLE
|
||||||
|
@ -45,7 +46,7 @@ echo "CREATION $NBbillets x G1BILLET - $STYLE -"
|
||||||
[[ ! -f ${MY_PATH}/images/fond${STYLE}.jpg ]] && echo "STYLE INCONNU ? ./images/fond${STYLE}.jpg" && exit 1
|
[[ ! -f ${MY_PATH}/images/fond${STYLE}.jpg ]] && echo "STYLE INCONNU ? ./images/fond${STYLE}.jpg" && exit 1
|
||||||
[[ ! -f ${MY_PATH}/images/logo${STYLE}.png ]] && echo "AJOUTER : ./images/logo${STYLE}.jpg" && exit 1
|
[[ ! -f ${MY_PATH}/images/logo${STYLE}.png ]] && echo "AJOUTER : ./images/logo${STYLE}.jpg" && exit 1
|
||||||
|
|
||||||
UNIQID=$(${MY_PATH}/diceware.sh 1 | xargs)${RANDOM:0:2}$(${MY_PATH}/diceware.sh 1 | xargs)
|
UNIQID=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-7)
|
||||||
|
|
||||||
# CREATION DE $NBbillets BILLETS DE $MONTANT DU
|
# CREATION DE $NBbillets BILLETS DE $MONTANT DU
|
||||||
boucle=0;
|
boucle=0;
|
||||||
|
@ -56,9 +57,9 @@ do
|
||||||
|
|
||||||
## ADAPT SECURITY LEVEL
|
## ADAPT SECURITY LEVEL
|
||||||
SALT=$(${MY_PATH}/diceware.sh $DICE | xargs)
|
SALT=$(${MY_PATH}/diceware.sh $DICE | xargs)
|
||||||
[[ $EMAIL != "" ]] && SALT=$EMAIL
|
#~ [[ $EMAIL != "" ]] && SALT="$EMAIL $SALT"
|
||||||
|
|
||||||
SECRET=$(${MY_PATH}/diceware.sh $DICE | xargs)
|
SECRET=$(${MY_PATH}/diceware.sh $DICE | xargs)
|
||||||
|
#~ [[ $EMAIL != "" ]] && SECRET="$EMAIL $SECRET"
|
||||||
|
|
||||||
# CREATION CLEF BILLET
|
# CREATION CLEF BILLET
|
||||||
BILLETPUBKEY=$(python3 ${MY_PATH}/key_create_dunikey.py "$SALT" "$SECRET")
|
BILLETPUBKEY=$(python3 ${MY_PATH}/key_create_dunikey.py "$SALT" "$SECRET")
|
||||||
|
@ -72,7 +73,7 @@ do
|
||||||
|
|
||||||
### GRAPHISM #####
|
### GRAPHISM #####
|
||||||
# CREATION FICHIER IMAGE BILLET dans ${MY_PATH}/tmp/g1billet/${UNIQID}
|
# CREATION FICHIER IMAGE BILLET dans ${MY_PATH}/tmp/g1billet/${UNIQID}
|
||||||
$(${MY_PATH}/MAKE_G1BILLET.sh "${SALT}" "${SECRET}" "${MONTANT}" "${BILLETPUBKEY}" "${UNIQID}" "${STYLE}" "${ASTRONAUTENS}" "${EMAIL}")
|
${MY_PATH}/MAKE_G1BILLET.sh "${SALT}" "${SECRET}" "${MONTANT}" "${BILLETPUBKEY}" "${UNIQID}" "${STYLE}" "${ASTRONAUTENS}" "${EMAIL}"
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -83,7 +84,7 @@ then
|
||||||
cp ${MY_PATH}/tmp/g1billet/${UNIQID}/*.jpg ${MY_PATH}/tmp/g1billet/${UNIQID}.jpg
|
cp ${MY_PATH}/tmp/g1billet/${UNIQID}/*.jpg ${MY_PATH}/tmp/g1billet/${UNIQID}.jpg
|
||||||
|
|
||||||
# CLEANING TEMP FILES
|
# CLEANING TEMP FILES
|
||||||
rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID}
|
echo rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID}
|
||||||
# ALLOWS ANY USER TO DELETE
|
# ALLOWS ANY USER TO DELETE
|
||||||
chmod 777 ${MY_PATH}/tmp/g1billet/${UNIQID}.jpg
|
chmod 777 ${MY_PATH}/tmp/g1billet/${UNIQID}.jpg
|
||||||
export ZFILE="${MY_PATH}/tmp/g1billet/${UNIQID}.jpg"
|
export ZFILE="${MY_PATH}/tmp/g1billet/${UNIQID}.jpg"
|
||||||
|
@ -93,6 +94,7 @@ else
|
||||||
# MONTAGE DES IMAGES DES BILLETS VERS ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf
|
# MONTAGE DES IMAGES DES BILLETS VERS ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf
|
||||||
montage ${MY_PATH}/tmp/g1billet/${UNIQID}/*.jpg -tile 2x3 -geometry 964x459 ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf
|
montage ${MY_PATH}/tmp/g1billet/${UNIQID}/*.jpg -tile 2x3 -geometry 964x459 ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf
|
||||||
# NB!! if "not autorized" then edit /etc/ImageMagick-6/policy.xml and comment
|
# NB!! if "not autorized" then edit /etc/ImageMagick-6/policy.xml and comment
|
||||||
|
[[ ! -s ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf ]] && echo "Please Correct PDF policy /etc/ImageMagick-6/policy.xml " && exit 1
|
||||||
# <!-- <policy domain="coder" rights="none" pattern="PDF" /> -->
|
# <!-- <policy domain="coder" rights="none" pattern="PDF" /> -->
|
||||||
# CLEANING TEMP FILES
|
# CLEANING TEMP FILES
|
||||||
rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID}
|
rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID}
|
||||||
|
@ -157,7 +159,7 @@ Content-Type: text/html; charset=UTF-8
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<center><h1><a href="'$RNAME'">(♥‿‿♥)</a>.</h1></center>
|
<center><h1><a href="javascript:history.go(-1)">(♥‿‿♥)</a>.</h1></center>
|
||||||
<center><div id="countdown"></div></center>
|
<center><div id="countdown"></div></center>
|
||||||
<script>
|
<script>
|
||||||
var timeLeft = 20;
|
var timeLeft = 20;
|
||||||
|
@ -224,7 +226,7 @@ while true; do
|
||||||
# EXECUTE COMMAND
|
# EXECUTE COMMAND
|
||||||
LOG=$(${MY_PATH}/${ME} "$MONTANT" "$STYLE")
|
LOG=$(${MY_PATH}/${ME} "$MONTANT" "$STYLE")
|
||||||
|
|
||||||
echo $LOG
|
# echo $LOG
|
||||||
# EXTRACT VALUES FROM SELF LOG
|
# EXTRACT VALUES FROM SELF LOG
|
||||||
IPNS=$(echo "$LOG" | grep '/ipns/')
|
IPNS=$(echo "$LOG" | grep '/ipns/')
|
||||||
[[ $IPNS ]] && echo "TW IPNS : $IPNS"
|
[[ $IPNS ]] && echo "TW IPNS : $IPNS"
|
||||||
|
@ -232,6 +234,7 @@ while true; do
|
||||||
[[ $IPNS ]] && echo "LIEN ACTIVATION : $CURL"
|
[[ $IPNS ]] && echo "LIEN ACTIVATION : $CURL"
|
||||||
|
|
||||||
ZFILE=$(echo "$LOG" | tail -n 1) ### LAST LINE : INFORM DAEMON
|
ZFILE=$(echo "$LOG" | tail -n 1) ### LAST LINE : INFORM DAEMON
|
||||||
|
echo $ZFILE
|
||||||
|
|
||||||
# PREPARE FILE SENDING
|
# PREPARE FILE SENDING
|
||||||
FILE_NAME="$(basename "${ZFILE}")"
|
FILE_NAME="$(basename "${ZFILE}")"
|
||||||
|
|
|
@ -21,7 +21,8 @@ UNIQID="$5"
|
||||||
STYLE="$6"
|
STYLE="$6"
|
||||||
## ASTRO TW MODE
|
## ASTRO TW MODE
|
||||||
ASTRONAUTENS="$7"
|
ASTRONAUTENS="$7"
|
||||||
EMAIL="________@____________"
|
EMAIL="$8"
|
||||||
|
[[ $EMAIL == "" ]] && EMAIL="________@____________"
|
||||||
|
|
||||||
if [[ "$SALT" == "" || "$SECRET" == "" || "$MONTANT" == "" || "$NOTERIB" == "" || "$UNIQID" == "" ]]
|
if [[ "$SALT" == "" || "$SECRET" == "" || "$MONTANT" == "" || "$NOTERIB" == "" || "$UNIQID" == "" ]]
|
||||||
then
|
then
|
||||||
|
@ -62,7 +63,10 @@ esac
|
||||||
|
|
||||||
|
|
||||||
# Add ${MY_PATH}/images/logo.png (250px)
|
# Add ${MY_PATH}/images/logo.png (250px)
|
||||||
composite -compose Over -gravity SouthWest -geometry +150+50 -dissolve 70% "${MY_PATH}/images/logo${STYLE}.png" "${MY_PATH}/images/fond${STYLE}.jpg" "${MY_PATH}/tmp/${BILLETNAME}.jpg"
|
composite -compose Over -gravity SouthWest -geometry +150+50 -dissolve 70% \
|
||||||
|
"${MY_PATH}/images/logo${STYLE}.png" \
|
||||||
|
"${MY_PATH}/images/fond${STYLE}.jpg" \
|
||||||
|
"${MY_PATH}/tmp/${BILLETNAME}.jpg"
|
||||||
|
|
||||||
# xbian style (ASTROPORT/KODI) + JEU
|
# xbian style (ASTROPORT/KODI) + JEU
|
||||||
if [[ "${STYLE}" == "xbian" || "${STYLE}" == "jeu" || "${STYLE}" == "astro" ]]
|
if [[ "${STYLE}" == "xbian" || "${STYLE}" == "jeu" || "${STYLE}" == "astro" ]]
|
||||||
|
@ -70,14 +74,36 @@ then
|
||||||
|
|
||||||
if [[ $ASTRONAUTENS ]]; then
|
if [[ $ASTRONAUTENS ]]; then
|
||||||
## IT IS AN ASTRONAUTENS IPNS LINK
|
## IT IS AN ASTRONAUTENS IPNS LINK
|
||||||
MOK="TW."
|
USALT=$(echo "$SALT" | jq -Rr @uri)
|
||||||
qrencode -s 6 -o "${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.TW.png" "https://ipfs.copylaradio.com/ipns/$ASTRONAUTENS"
|
UPEPPER=$(echo "$SECRET" | jq -Rr @uri)
|
||||||
composite -compose Over -gravity SouthWest -geometry +50+50 "${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.TW.png" "${MY_PATH}/tmp/${BILLETNAME}.jpg" "${MY_PATH}/tmp/${BILLETNAME}${MOK}.jpg"
|
DISCO="/?salt=${USALT}&pepper=${UPEPPER}"
|
||||||
else
|
echo "${DISCO}" \
|
||||||
MOK=""
|
| gpg --symmetric --armor --batch --passphrase "$UNIQID" -o ${MY_PATH}/tmp/gpg.${BILLETNAME}.asc
|
||||||
|
|
||||||
|
# qrencode -s 6 -o "${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.TW.png" "https://ipfs.copylaradio.com/ipns/$ASTRONAUTENS"
|
||||||
|
|
||||||
|
## Add logo to QRCode
|
||||||
|
convert ${MY_PATH}/images/astrologo_nb.png -resize 300 ${MY_PATH}/tmp/fond.png
|
||||||
|
|
||||||
|
## MAKE amzqr WITH astro:// LINK
|
||||||
|
amzqr "$(cat ${MY_PATH}/tmp/gpg.${BILLETNAME}.asc | tr -d '\n')" \
|
||||||
|
-d ${MY_PATH}/tmp \
|
||||||
|
-l H \
|
||||||
|
-p ${MY_PATH}/tmp/fond.png
|
||||||
|
|
||||||
|
## ADD PLAYER EMAIL
|
||||||
|
convert -gravity northwest -pointsize 28 -fill black -draw "text 5,5 \"$PLAYER\"" ${MY_PATH}/tmp/fond_qrcode.png ${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.TW.png
|
||||||
|
|
||||||
|
composite -compose Over -gravity SouthWest -geometry +50+50 \
|
||||||
|
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.TW.png" \
|
||||||
|
"${MY_PATH}/tmp/${BILLETNAME}.jpg" \
|
||||||
|
"${MY_PATH}/tmp/${BILLETNAME}.jpg"
|
||||||
|
|
||||||
|
rm ${MY_PATH}/tmp/gpg.${BILLETNAME}.asc
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# CREATE PSEUDO for Gchange.fr
|
# ENTETE ET BAS DE BILLET
|
||||||
XZUID="$EMAIL"
|
XZUID="$EMAIL"
|
||||||
BOTTOM="$(date) :: $(hostname) :: ♥Box ::"
|
BOTTOM="$(date) :: $(hostname) :: ♥Box ::"
|
||||||
|
|
||||||
|
@ -90,10 +116,18 @@ fi
|
||||||
|
|
||||||
# G1PUB QR CODE
|
# G1PUB QR CODE
|
||||||
qrencode -s 6 -o "${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.QR.png" "$NOTERIB"
|
qrencode -s 6 -o "${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.QR.png" "$NOTERIB"
|
||||||
composite -compose Over -gravity SouthEast -geometry +35+50 "${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.QR.png" "${MY_PATH}/tmp/${BILLETNAME}${MOK}.jpg" "${MY_PATH}/tmp/${BILLETNAME}.jpg"
|
|
||||||
|
# AJOUT DU QRCODE SUR LE FOND DE BILLET
|
||||||
|
composite -compose Over -gravity SouthEast -geometry +35+50 \
|
||||||
|
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.QR.png" \
|
||||||
|
"${MY_PATH}/tmp/${BILLETNAME}.jpg" \
|
||||||
|
"${MY_PATH}/tmp/${BILLETNAME}.jpg"
|
||||||
|
|
||||||
# Add g1 LOGO to Billet
|
# Add g1 LOGO to Billet
|
||||||
composite -compose Over -gravity NorthEast -geometry +50+25 -dissolve 90% "${MY_PATH}/tmp/g1billet/${UNIQID}/g1.png" "${MY_PATH}/tmp/${BILLETNAME}.jpg" "${MY_PATH}/tmp/${BILLETNAME}.jpg"
|
composite -compose Over -gravity NorthEast -geometry +50+25 -dissolve 90% \
|
||||||
|
"${MY_PATH}/tmp/g1billet/${UNIQID}/g1.png" \
|
||||||
|
"${MY_PATH}/tmp/${BILLETNAME}.jpg" \
|
||||||
|
"${MY_PATH}/tmp/${BILLETNAME}.jpg"
|
||||||
|
|
||||||
|
|
||||||
if [[ "$MONTANT" != "___" ]]; then
|
if [[ "$MONTANT" != "___" ]]; then
|
||||||
|
@ -116,5 +150,6 @@ convert -font 'Liberation-Sans' \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f ${MY_PATH}/tmp/${BILLETNAME}.jpg
|
rm -f ${MY_PATH}/tmp/${BILLETNAME}.jpg
|
||||||
|
|
||||||
## TODO STORE XZUID & G1PUB into ASTROPORT/IPFS, as FUTURE travelers...
|
## TODO STORE XZUID & G1PUB into ASTROPORT/IPFS, as FUTURE travelers...
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 17 KiB |
|
@ -12,8 +12,13 @@ echo "#############################################"
|
||||||
echo ">>>>>>>>>>> SYSTEMD SETUP "
|
echo ">>>>>>>>>>> SYSTEMD SETUP "
|
||||||
echo "#############################################"
|
echo "#############################################"
|
||||||
|
|
||||||
sudo apt install python3 python3-pip imagemagick qrencode ttf-mscorefonts-installer netcat-traditional
|
sudo apt install python3 python3-pip imagemagick qrencode ttf-mscorefonts-installer netcat-traditional python3-gpg
|
||||||
sudo pip3 install duniterpy
|
|
||||||
|
for i in pip setuptools wheel cryptography==3.4.8 Ed25519 base58 google duniterpy pynacl pgpy pynentry SecureBytes amzqr; do
|
||||||
|
echo ">>> Installation $i <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
|
||||||
|
sudo python3 -m pip install -U $i
|
||||||
|
[[ $? != 0 ]] && echo "python3 -m pip install -U $i FAILED." && continue
|
||||||
|
done
|
||||||
|
|
||||||
echo "# Correction des droits export PDF imagemagick"
|
echo "# Correction des droits export PDF imagemagick"
|
||||||
if [[ $(cat /etc/ImageMagick-6/policy.xml | grep PDF) ]]; then
|
if [[ $(cat /etc/ImageMagick-6/policy.xml | grep PDF) ]]; then
|
||||||
|
|
Loading…
Reference in New Issue