From 3af864f5de42f02710082a7ae6e54176726e1fbf Mon Sep 17 00:00:00 2001 From: fred Date: Mon, 18 Dec 2023 16:23:18 +0100 Subject: [PATCH] color based common crypto land --- templates/g1member.welcome.txt | 17 +++++++++ tools/diffie_hellman_colors.sh | 68 ++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 templates/g1member.welcome.txt create mode 100755 tools/diffie_hellman_colors.sh diff --git a/templates/g1member.welcome.txt b/templates/g1member.welcome.txt new file mode 100644 index 00000000..b014c7b6 --- /dev/null +++ b/templates/g1member.welcome.txt @@ -0,0 +1,17 @@ +Objet : Bienvenue dans la communauté de la Monnaie Libre Ğ1 ! + +Cher(e) nouveau/nouvelle membre de la toile de confiance Ğ1, + +Tout d'abord, permettez-moi de vous souhaiter chaleureusement la bienvenue au sein de notre communauté dédiée à la Monnaie Libre. Je suis Fred, membre engagé de ce collectif passionné qui croit fermement en l'idée d'une société du partage, basée sur la gestion collective du Commun. + +Notre groupe, la Société des Technologies Informatiques (STI), rassemble des ingénieurs experts en logiciels libres, prêts à partager leurs connaissances avec tous ceux qui aspirent à utiliser quotidiennement des logiciels libres et des algorithmes clairs. Nous sommes là pour vous accompagner pas à pas, que ce soit pour installer un nœud Duniter, héberger votre propre serveur NextCloud, synchroniser votre smartphone, apprendre à auto-héberger votre site tout en préservant le contrôle sur vos données, et même explorer les arcanes de l'IA Open Source. + +Dans un contexte de virage numérique totalitaire en cours, nous croyons fermement en la nécessité d'accentuer le mouvement de décentralisation. La Monnaie Libre, à l'image des logiciels libres, représente un pilier essentiel de cette transition vers une société où la liberté numérique est préservée. + +N'hésitez pas à participer activement, poser des questions et partager vos expériences au sein de notre communauté. Ensemble, nous pouvons contribuer à façonner un avenir où la liberté, la transparence et la coopération sont au cœur de nos échanges. + +Encore une fois, bienvenue parmi nous ! Nous sommes impatients de construire ensemble un monde numérique plus libre et équitable. + +Cordialement, + +Fred diff --git a/tools/diffie_hellman_colors.sh b/tools/diffie_hellman_colors.sh new file mode 100755 index 00000000..43e5e058 --- /dev/null +++ b/tools/diffie_hellman_colors.sh @@ -0,0 +1,68 @@ +#!/bin/bash +################################################################################ +# Author: Fred (support@qo-op.com) +# Version: 0.2 +# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) +################################################################################ +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +. "$MY_PATH/my.sh" +################################################################################ + +PLAYER="$1" +[[ ! -s ~/.zen/game/players/${PLAYER}/secret.dunikey ]] && PLAYER=".current" + +if [[ ! -s ~/.zen/game/players/${PLAYER}/private_color.png ]]; then + PUBKEY=$(cat ~/.zen/game/players/${PLAYER}/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) + SECKEY=$(cat ~/.zen/game/players/${PLAYER}/secret.dunikey | grep 'sec:' | cut -d ' ' -f 2) + + DESTMAIL="$2" + + # Convert the public key to a color (hexadecimal representation) + color_hex=$(echo -n ${SECKEY} | sha256sum | awk '{print $1}') + + # Ensure the color is 6 characters long (for RGB) + color_hex=${color_hex:0:6} + echo "Color Hex: #$color_hex" + + # Convert the color to an Image + convert -size 100x100 xc:"#${color_hex}" ~/.zen/game/players/${PLAYER}/private_color.png +fi + +# Choosing IPFSNODEID Base Color +color_hex=$(echo -n ${IPFSNODEID} | sha256sum | awk '{print $1}') +color_hex=${color_hex:0:6} +convert -size 100x100 xc:"#${color_hex}" ~/.zen/base_white.png + +# Step 3: Mixing Colors +composite -compose Multiply ~/.zen/tmp/base_white.png \ + ~/.zen/game/players/${PLAYER}/private_color.png \ + ~/.zen/tmp/mixed_color.png + +xdg-open ~/.zen/tmp/mixed_color.png + +echo "Sharing 'mixed_color.png' on ipfs pubsub channel" + +# Step 4: Exchange Mixed Colors using IPFS pubsub +ipfs_pubsub_channel="diffie_hellman_colors_channel" + +ipfs_pubsub_pub_cmd="ipfs pubsub pub $ipfs_pubsub_channel" +ipfs_pubsub_sub_cmd="ipfs pubsub sub $ipfs_pubsub_channel" + +$ipfs_pubsub_pub_cmd < ~/.zen/tmp/mixed_color.png + +# Wait for Bob to publish his mixed color +echo "Waiting for Other to publish his mixed color..." +mixed_bob_ipfs=$(eval $ipfs_pubsub_sub_cmd) +echo "Received Bob's mixed color from IPFS pubsub." + +# Save Bob's mixed color to a file +echo "$mixed_bob_ipfs" > ~/.zen/tmp/mixed_bob_from_ipfs.png + +# Step 5: Final Color Agreement +composite -compose Multiply ~/.zen/tmp/mixed_bob_from_ipfs.png \ + ~/.zen/game/players/${PLAYER}/private_color.png \ + ~/.zen/tmp/shared_secret.png + +echo "Completed. You have a ~/.zen/tmp/shared_secret.png" +xdg-open ~/.zen/tmp/shared_secret.png