Skip to content

Instantly share code, notes, and snippets.

@mylamour
Created June 8, 2022 07:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mylamour/fb169082897e0725c767db1c49509e73 to your computer and use it in GitHub Desktop.
Save mylamour/fb169082897e0725c767db1c49509e73 to your computer and use it in GitHub Desktop.
RUNPATH="$(
cd -- "$(dirname "$0")" >/dev/null 2>&1
pwd -P
)"
echo "$RUNPATH"
# Alice
rm -rf alice bob
mkdir -p alice/keys/ alice/texts/ bob/keys/
cd alice/keys
for i in $(seq 10); do
echo "Generate $i Keypairs"
echo "TEST$i" >../texts/$i.text
openssl genrsa -out $i.priv && openssl rsa -in $i.priv -pubout -out $i.pub
cp $i.pub $RUNPATH/bob/keys/
done
# Bob
cd $RUNPATH/bob/
secret=$(openssl rand -hex 66)
t=5 # select No.5 Text
echo $secret >secret_file
openssl pkeyutl -encrypt -inkey keys/$t.pub -pubin -in secret_file -out secret_file.enc
# | base64 >secret_file_b64
mv secret_file.enc $RUNPATH/alice/
# Alice
cd $RUNPATH/alice/
# cat secret_file_b64 | base64 -d > secret_file.enc
for k in $(seq 10); do
echo "Decrypt with keys/$k.priv"
# get different private key
openssl pkeyutl -decrypt -in secret_file.enc -inkey keys/$k.priv -out secret_file.$k
if [ -f "secret_file.$k" ]; then
# encrypt different message with different keys
openssl enc -aes-256-cbc -in texts/$k.text -out $k.secret.enc -pass file:secret_file.$k
# openssl des -e -in texts/$.text -out $k.secret.enc -pass file:secret_file.$k
mv $k.secret.enc $RUNPATH/bob/
fi
done
# Bob
cd $RUNPATH/bob/
for f in $(ls *.secret.enc); do
# openssl des -e -in texts/$.text -out $k.secret.enc -pass file:secret_file.$k
echo "-----------------------------------------------------"
openssl enc -d -aes-256-cbc -in $f -pass file:secret_file
echo "-----------------------------------------------------"
done
@mylamour
Copy link
Author

mylamour commented Jun 8, 2022

image

RUNPATH="$(
    cd -- "$(dirname "$0")" >/dev/null 2>&1
    pwd -P
)"
echo "$RUNPATH"

rm -rf recv send
mkdir -p recv/keys/ send/texts/ send/keys/
b=5 # select Message at No.5

# Receiver
cd recv/keys
for i in $(seq 9); do
    echo "Generate $i Keypairs"
    openssl genrsa | openssl rsa -pubout >$i.pub
    if [ $i == $b ]; then
        openssl genrsa -out sk && openssl rsa -in sk -pubout -out $i.pub
    fi
    cp $i.pub $RUNPATH/send/keys/
done

# Sender

cd $RUNPATH/send/

for i in $(seq 9); do
    echo "TEST$i" >texts/$i.text
    openssl pkeyutl -encrypt -inkey keys/$i.pub -pubin -in texts/$i.text -out $i.enc
    mv $i.enc $RUNPATH/recv/
done

# Reciver
cd $RUNPATH/recv/
openssl pkeyutl -decrypt -in $b.enc -inkey keys/sk -out selected_text

echo "-----------------------------------------------------"
cat selected_text
echo "-----------------------------------------------------"

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment