1
0
Fork 0

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" 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
NBbillets=6 NBbillets=6
[[ "${STYLE}" != "" && "${STYLE}" != "solian" && "${STYLE}" != "jeu" ]] && NBbillets=1 [[ "${STYLE}" != "" && "${STYLE}" != "solian" && "${STYLE}" != "jeu" ]] && NBbillets=1
echo "CREATION $NBbillets x G1BILLET - $STYLE -" echo "CREATION $NBbillets x G1BILLET - $STYLE - "
# CHECK IF $STYLE IMAGES EXIST # CHECK IF $STYLE IMAGES EXIST
[[ ! -f ${MY_PATH}/images/g1${STYLE}.png ]] && echo "AJOUTER : ./images/g1${STYLE}.jpg" && exit 1 [[ ! -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/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,14 +57,14 @@ 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")
rm -f /tmp/secret.dunikey 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" ${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) ASTRONAUTENS=$(ipfs key import ${UNIQID} -f pem-pkcs8-cleartext ${MY_PATH}/tmp/g1billet.${UNIQID}.ipns.key)
@ -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}")"

View File

@ -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"
# Add g1 LOGO to Billet # AJOUT DU QRCODE SUR LE FOND DE 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 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 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

View File

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