using PGP SALT/PEPPER QRCODE for pay process

This commit is contained in:
fred 2023-03-26 01:27:18 +01:00
parent 29df99b316
commit 7defb00201
4 changed files with 70 additions and 27 deletions

View File

@ -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}")"

View File

@ -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

View File

@ -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