123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- # parse argument
- architecture=$1
- permutation=$2
- matrix_decompressed_file=$3
- matrix_comp_file=$4
- output_dir=$5
- lorem_ipsum_file=$6
- if [ $permutation -eq 1 ] ; then
- permutation_str=""
- else
- permutation_str=" -no-permutation-key "
- fi
- # generate different encoding paramethers
- str="
- xrnlib-cli \
- --encoding-conf -compiled-param -password-str \"AlicePassword0#\" \
- --dump-encoding-param -encoding-param $output_dir/alice_encoding_param_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --encoding-conf -compiled-param -password-str \"BobPassword0#\" \
- --dump-encoding-param -encoding-param $output_dir/bob_encoding_param_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --encoding-conf -compiled-param -password-str \"OneTimePassword0#\" \
- --dump-encoding-param -encoding-param $output_dir/otp_encoding_param_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- # convert datastructures for the encoding paramethers
- str="
- xrnlib-cli \
- --decoding-conf -compiled-param -no-password \
- --encoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --decode-encode -to-decode $matrix_decompressed_file -to-encode $output_dir/alice_xoron_matrix.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -compiled-param -no-password \
- --encoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --decode-encode -to-decode $matrix_decompressed_file -to-encode $output_dir/bob_xoron_matrix.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- # generate alice data structures
- str="
- xrnlib-cli \
- --encoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --permutation-conf -arch $architecture $permutation_str \
- --make-monomial-key -monomial-key $output_dir/alice_monomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --encoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --sequence-conf -xmatrix $output_dir/alice_xoron_matrix.xf \
- --permutation-conf -arch $architecture $permutation_str \
- --make-start-point -start-point $output_dir/alice_start_point_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --encoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --arithmetic-conf -start-point $output_dir/alice_start_point_file.xf -monomial-key $output_dir/alice_monomial_key_file.xf \
- --sequence-conf -xmatrix $output_dir/alice_xoron_matrix.xf \
- --permutation-conf -arch $architecture \
- --make-binomial-key -binomial-key $output_dir/alice_binomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- # send the file to bob and extracting meta data
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --encoding-conf -encoding-param $output_dir/otp_encoding_param_file.xf -no-password \
- --decode-encode -to-decode $output_dir/alice_binomial_key_file.xf -to-encode $output_dir/otp_alice_binomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/otp_encoding_param_file.xf -no-password \
- --encoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --decode-encode -to-decode $output_dir/otp_alice_binomial_key_file.xf -to-encode $output_dir/alice_binomial_key_file_for_bob.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --permutation-conf -arch 128 \
- --logging-conf -lib-error-log $output_dir/print_alice_binomial_key.err -lib-info-log $output_dir/print_alice_binomial_key.info \
- --print-header -xrn-file $output_dir/alice_binomial_key_file_for_bob.xf ; \
- if grep -q XRN-ERR \"$output_dir/print_alice_binomial_key.err\" ; then \
- rm $output_dir/print_alice_binomial_key.err ; \
- rm $output_dir/print_alice_binomial_key.info ; \
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --permutation-conf -arch 256 \
- --logging-conf -lib-error-log $output_dir/print_alice_binomial_key.err -lib-info-log $output_dir/print_alice_binomial_key.info \
- --print-header -xrn-file $output_dir/alice_binomial_key_file_for_bob.xf ; \
- fi
- "
- echo ""; echo $str; echo ""
- eval $str
- bob_architecture=$(cat $output_dir/print_alice_binomial_key.info | grep nbits | sed 's/^.*:.// ; s/.$//')
- bob_permutation_used=$(cat $output_dir/print_alice_binomial_key.info | grep permutation_used | sed 's/^.*:.//')
- if [ "$bob_permutation_used" == "1" ] ; then
- bob_permutation_str=""
- else
- bob_permutation_str=" -no-permutation-key "
- fi
- echo "# bob_architecture $bob_architecture bob_permutation_used $bob_permutation_used bob_permutation_str=$bob_permutation_str"
- # bob generating binomial key
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --encoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --arithmetic-conf -binomial-key $output_dir/alice_binomial_key_file_for_bob.xf \
- --permutation-conf -arch $bob_architecture \
- --convert-binomial-key-to-start-point -start-point $output_dir/bob_start_point_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --encoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --permutation-conf -arch $bob_architecture $bob_permutation_str \
- --make-monomial-key -monomial-key $output_dir/bob_monomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --encoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --arithmetic-conf -start-point $output_dir/bob_start_point_file.xf -monomial-key $output_dir/bob_monomial_key_file.xf \
- --sequence-conf -xmatrix $output_dir/bob_xoron_matrix.xf \
- --permutation-conf -arch $bob_architecture \
- --make-binomial-key -binomial-key $output_dir/bob_binomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- # exchange key for alice
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --encoding-conf -encoding-param $output_dir/otp_encoding_param_file.xf -no-password \
- --decode-encode -to-decode $output_dir/bob_binomial_key_file.xf -to-encode $output_dir/otp_bob_binomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/otp_encoding_param_file.xf -no-password \
- --encoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --decode-encode -to-decode $output_dir/otp_bob_binomial_key_file.xf -to-encode $output_dir/bob_binomial_key_file_for_alice.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --encoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --arithmetic-conf -binomial-key $output_dir/alice_binomial_key_file.xf -monomial-key $output_dir/alice_monomial_key_file.xf \
- --sequence-conf -xmatrix $output_dir/alice_xoron_matrix.xf \
- --permutation-conf -arch $architecture \
- --exchange-monomial-key -external-binomial-key $output_dir/bob_binomial_key_file_for_alice.xf -shared-monomial-key $output_dir/alice_shared_monomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- # exchange key for bob
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --encoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --arithmetic-conf -binomial-key $output_dir/bob_binomial_key_file.xf -monomial-key $output_dir/bob_monomial_key_file.xf \
- --sequence-conf -xmatrix $output_dir/bob_xoron_matrix.xf \
- --permutation-conf -arch $architecture \
- --exchange-monomial-key -external-binomial-key $output_dir/alice_binomial_key_file_for_bob.xf -shared-monomial-key $output_dir/bob_shared_monomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- # convert and compare shared keys to a plain text json files
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/alice_encoding_param_file.xf -no-password \
- --permutation-conf -arch $architecture \
- --logging-conf -lib-info-log $output_dir/alice_shared_monomial_key_file.json \
- --print-header -xrn-file $output_dir/alice_shared_monomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -encoding-param $output_dir/bob_encoding_param_file.xf -no-password \
- --permutation-conf -arch $bob_architecture \
- --logging-conf -lib-info-log $output_dir/bob_shared_monomial_key_file.json \
- --print-header -xrn-file $output_dir/bob_shared_monomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- cmp --silent $output_dir/alice_shared_monomial_key_file.json $output_dir/bob_shared_monomial_key_file.json && echo 'PASS' || echo 'FAIL'
- "
- echo ""; echo $str; echo ""
- eval $str
|