using PGP SALT/PEPPER QRCODE for pay process
This commit is contained in:
parent
29df99b316
commit
7defb00201
29
G1BILLETS.sh
29
G1BILLETS.sh
|
@ -23,29 +23,30 @@ if [[ $MONTANT != "daemon" ]]; then
|
|||
STYLE="$2"
|
||||
|
||||
DICE=$(cat $MY_PATH/DICE 2>/dev/null) ## HOW MANY WORDS SECRETS
|
||||
[[ $DICE != ?(-)+([0-9]) ]] && DICE=3
|
||||
echo "$DICE WORDS SECRETS (Define length in $MY_PATH/DICE)"
|
||||
[[ $DICE != ?(-)+([0-9]) ]] && DICE=4
|
||||
# echo "$DICE WORDS SECRETS (Define length in $MY_PATH/DICE)"
|
||||
|
||||
## CHECK IF STYLE IS EMAIL => astro IPFS G1BILLET
|
||||
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"
|
||||
EMAIL=${STYLE}
|
||||
STYLE="astro"
|
||||
STYLE="jeu"
|
||||
DICE=3
|
||||
fi
|
||||
|
||||
## STYLE SELECTED: PDF DE 6 BILLETS OR SINGLE
|
||||
NBbillets=6
|
||||
[[ "${STYLE}" != "" && "${STYLE}" != "solian" && "${STYLE}" != "jeu" ]] && NBbillets=1
|
||||
|
||||
echo "CREATION $NBbillets x G1BILLET - $STYLE -"
|
||||
echo "CREATION $NBbillets x G1BILLET - $STYLE - "
|
||||
|
||||
# CHECK IF $STYLE IMAGES EXIST
|
||||
[[ ! -f ${MY_PATH}/images/g1${STYLE}.png ]] && echo "AJOUTER : ./images/g1${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
|
||||
|
||||
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
|
||||
boucle=0;
|
||||
|
@ -56,14 +57,14 @@ do
|
|||
|
||||
## ADAPT SECURITY LEVEL
|
||||
SALT=$(${MY_PATH}/diceware.sh $DICE | xargs)
|
||||
[[ $EMAIL != "" ]] && SALT=$EMAIL
|
||||
|
||||
#~ [[ $EMAIL != "" ]] && SALT="$EMAIL $SALT"
|
||||
SECRET=$(${MY_PATH}/diceware.sh $DICE | xargs)
|
||||
#~ [[ $EMAIL != "" ]] && SECRET="$EMAIL $SECRET"
|
||||
|
||||
# CREATION CLEF BILLET
|
||||
BILLETPUBKEY=$(python3 ${MY_PATH}/key_create_dunikey.py "$SALT" "$SECRET")
|
||||
rm -f /tmp/secret.dunikey
|
||||
echo "$boucle : $BILLETPUBKEY"
|
||||
echo "$boucle : $BILLETPUBKEY "
|
||||
|
||||
${MY_PATH}/keygen -t ipfs -o ${MY_PATH}/tmp/g1billet.${UNIQID}.ipns.key "$SALT" "$SECRET"
|
||||
ASTRONAUTENS=$(ipfs key import ${UNIQID} -f pem-pkcs8-cleartext ${MY_PATH}/tmp/g1billet.${UNIQID}.ipns.key)
|
||||
|
@ -72,7 +73,7 @@ do
|
|||
|
||||
### GRAPHISM #####
|
||||
# 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
|
||||
|
||||
|
@ -83,7 +84,7 @@ then
|
|||
cp ${MY_PATH}/tmp/g1billet/${UNIQID}/*.jpg ${MY_PATH}/tmp/g1billet/${UNIQID}.jpg
|
||||
|
||||
# CLEANING TEMP FILES
|
||||
rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID}
|
||||
echo rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID}
|
||||
# ALLOWS ANY USER TO DELETE
|
||||
chmod 777 ${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 ${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
|
||||
[[ ! -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" /> -->
|
||||
# CLEANING TEMP FILES
|
||||
rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID}
|
||||
|
@ -157,7 +159,7 @@ Content-Type: text/html; charset=UTF-8
|
|||
</style>
|
||||
</head>
|
||||
<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>
|
||||
<script>
|
||||
var timeLeft = 20;
|
||||
|
@ -224,7 +226,7 @@ while true; do
|
|||
# EXECUTE COMMAND
|
||||
LOG=$(${MY_PATH}/${ME} "$MONTANT" "$STYLE")
|
||||
|
||||
echo $LOG
|
||||
# echo $LOG
|
||||
# EXTRACT VALUES FROM SELF LOG
|
||||
IPNS=$(echo "$LOG" | grep '/ipns/')
|
||||
[[ $IPNS ]] && echo "TW IPNS : $IPNS"
|
||||
|
@ -232,6 +234,7 @@ while true; do
|
|||
[[ $IPNS ]] && echo "LIEN ACTIVATION : $CURL"
|
||||
|
||||
ZFILE=$(echo "$LOG" | tail -n 1) ### LAST LINE : INFORM DAEMON
|
||||
echo $ZFILE
|
||||
|
||||
# PREPARE FILE SENDING
|
||||
FILE_NAME="$(basename "${ZFILE}")"
|
||||
|
|
|
@ -21,7 +21,8 @@ UNIQID="$5"
|
|||
STYLE="$6"
|
||||
## ASTRO TW MODE
|
||||
ASTRONAUTENS="$7"
|
||||
EMAIL="________@____________"
|
||||
EMAIL="$8"
|
||||
[[ $EMAIL == "" ]] && EMAIL="________@____________"
|
||||
|
||||
if [[ "$SALT" == "" || "$SECRET" == "" || "$MONTANT" == "" || "$NOTERIB" == "" || "$UNIQID" == "" ]]
|
||||
then
|
||||
|
@ -62,7 +63,10 @@ esac
|
|||
|
||||
|
||||
# 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
|
||||
if [[ "${STYLE}" == "xbian" || "${STYLE}" == "jeu" || "${STYLE}" == "astro" ]]
|
||||
|
@ -70,14 +74,36 @@ then
|
|||
|
||||
if [[ $ASTRONAUTENS ]]; then
|
||||
## IT IS AN ASTRONAUTENS IPNS LINK
|
||||
MOK="TW."
|
||||
qrencode -s 6 -o "${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.TW.png" "https://ipfs.copylaradio.com/ipns/$ASTRONAUTENS"
|
||||
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"
|
||||
else
|
||||
MOK=""
|
||||
USALT=$(echo "$SALT" | jq -Rr @uri)
|
||||
UPEPPER=$(echo "$SECRET" | jq -Rr @uri)
|
||||
DISCO="/?salt=${USALT}&pepper=${UPEPPER}"
|
||||
echo "${DISCO}" \
|
||||
| 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
|
||||
|
||||
# CREATE PSEUDO for Gchange.fr
|
||||
# ENTETE ET BAS DE BILLET
|
||||
XZUID="$EMAIL"
|
||||
BOTTOM="$(date) :: $(hostname) :: ♥Box ::"
|
||||
|
||||
|
@ -90,10 +116,18 @@ fi
|
|||
|
||||
# G1PUB QR CODE
|
||||
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"
|
||||
|
||||
# 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"
|
||||
# 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
|
||||
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
|
||||
|
@ -116,5 +150,6 @@ convert -font 'Liberation-Sans' \
|
|||
fi
|
||||
|
||||
rm -f ${MY_PATH}/tmp/${BILLETNAME}.jpg
|
||||
|
||||
## 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 "#############################################"
|
||||
|
||||
sudo apt install python3 python3-pip imagemagick qrencode ttf-mscorefonts-installer netcat-traditional
|
||||
sudo pip3 install duniterpy
|
||||
sudo apt install python3 python3-pip imagemagick qrencode ttf-mscorefonts-installer netcat-traditional python3-gpg
|
||||
|
||||
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"
|
||||
if [[ $(cat /etc/ImageMagick-6/policy.xml | grep PDF) ]]; then
|
||||
|
|
Loading…
Reference in New Issue