[*] -  SecureInfo.eu, /Crypto/rsa-mechanic.sh

Back


#!/bin/sh

clear

openssl="/usr/bin/openssl"
#openssl="/usr/local/bin/libressl"

key=0
key_alice="key_alice"
key_bob="key_bob"

title()
{
  printf "\e[1;33m"
  printf "[+] $1"
  printf "\e[0m\n"
}

title_b()
{
  printf "\e[1;34m"
  printf "[+] $1"
  printf "\e[0m\n"
}

title_a()
{
  printf "\e[1;35m"
  printf "[+] $1"
  printf "\e[0m\n"
}

rm -f $filedest $fileclrr.*
clear

if [ $key -eq 1 ]; then
  printf "\n\e[1;33mGeneration du code PIN de \e[0m\e[1;34mBob : $RANDOM$RANDOM\e[0m\n"
  printf "\e[1;33mGeneration du code PIN de \e[0m\e[1;35mAlice : $RANDOM$RANDOM\e[0m\n\n"
fi

echo
echo "β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”"
echo

title_b "πŸ‘¨  : πŸ”‘     Generation de la clΓ© privΓ©e de Bob"
if [ $key -eq 1 ]; then
  $openssl genrsa -des3 -out "$key_bob.pem"
else
  $openssl genrsa -out "$key_bob.pem" >/dev/null 2>&1
fi
sleep 1

title_b "πŸ‘¨  : πŸ›      Extraction de la clΓ© public de Bob depuis sa clΓ© privΓ©e"
if [ $key -eq 1 ]; then
  $openssl rsa -in "$key_bob.pem" -pubout -out "$key_bob.pub"
else
  $openssl rsa -in "$key_bob.pem" -pubout -out "$key_bob.pub" >/dev/null 2>&1
fi
sleep 1

echo
echo "β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”"
echo

title_a "πŸ‘©  : πŸ—     Generation de la clΓ© privΓ©e de Alice"
if [ $key -eq 1 ]; then
  $openssl genrsa -des3 -out "$key_alice.pem"
else
  $openssl genrsa -out "$key_alice.pem" >/dev/null 2>&1
fi
sleep 1

title_a "πŸ‘©  : πŸ”     Extraction de la clΓ© public de Alice depuis sa clΓ© privΓ©e"
if [ $key -eq 1 ]; then
  $openssl rsa -in "$key_alice.pem" -pubout -out "$key_alice.pub"
else
  $openssl rsa -in "$key_alice.pem" -pubout -out "$key_alice.pub" >/dev/null 2>&1
fi
sleep 1

echo
echo "β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”"
echo

title_b "πŸ‘¨  : πŸ“„     Bob Γ©crit un message Γ  Alice"
dest="message_de_Bob_pour_Alice"
echo "Bonjour Alice, je t'envoie ce message confidentiel, avec ton mot de passe pour notre site : 1A2B3C4D5E" > $dest.txt
sleep 2

title_b "πŸ‘¨  : πŸ‘© πŸ”   Bob va chercher la clΓ© publique de Alice pour chiffrer le message"
cp -f "$key_alice.pub" "fichier_de_Bob-$key_alice.pub"
sleep 1

title_b "πŸ‘¨  : πŸ“§     Bob va chiffre le message avec la clΓ© publique de Alice"
$openssl rsautl -encrypt -in message_de_Bob_pour_Alice.txt -pubin -inkey "fichier_de_Bob-$key_alice.pub"  -out $dest.enc -pkcs
sleep 1

title_b "πŸ‘¨  : πŸ“«     Bob envoie le message chiffrΓ© Γ  Alice"
fichier_alice="fichier_pour_Alice-$dest"
cp -f "$dest.enc" "$fichier_alice.enc"
sleep 1

title_b "πŸ‘¨  : πŸ“ͺ     Bob envoie l'intΓ©gritΓ© du message Γ  Alice"
bob_hash=$($openssl dgst -sha512 "$fichier_alice.enc")
sleep 1

# TODO: signature - signer avec la clΓ© privΓ©e de l'Γ©metteur + intΓ©gritΓ© du message en clair

echo
echo "β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”"
echo

title_a "πŸ‘©  : πŸ“ͺ     Alice vΓ©rifie l'intΓ©gritΓ© du fichier de Bob"
alice_hash=$($openssl dgst -sha512 "$fichier_alice.enc")
sleep 1
if [ "$alice_hash" = "$bob_hash" ] ; then
  title_a "πŸ‘©  : πŸ“¬     Alice constate que le transfert s'est bien dΓ©roulΓ©"
fi
sleep 1

title_a "πŸ‘©  : πŸ—     Alice dΓ©chiffre le fichier de Bob avec sa clΓ© privΓ©e"
rm -f fichier_de_Alice-message_*_Bob_pour_Alice.txt
$openssl rsautl -decrypt -in "$fichier_alice.enc" -inkey "$key_alice.pem" -out "$fichier_alice.txt" # -passin "$pass"
sleep 1

title_a "πŸ‘©  : πŸ“„     Alice peut consulter le fichier dΓ©chiffrΓ©"
cat  "$fichier_alice.txt"
sleep 1

printf "\n\n"
⬆️ Top
admin