123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- #parse argument
- architecture=$1
- permutation=$2
- matrix_decompressed_file=$3
- matrix_comp_file=$4
- output_dir=$5
- lorem_ipsum_file=$6
- if [ $permutation -eq 0 ] ; then
- permutation_str=""
- else
- permutation_str=" -no-permutation-key "
- fi
- # make symmetric certificate
- str="
- xrnlib-cli \
- --encoding-conf -compiled-param -no-password \
- --permutation-conf -arch $architecture $permutation_str \
- --make-monomial-key -monomial-key $output_dir/monomial_key_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -compiled-param -no-password \
- --encoding-conf -compiled-param -no-password \
- --sequence-conf -xmatrix $matrix_decompressed_file \
- --permutation-conf -arch $architecture $permutation_str \
- --logging-conf -lib-error-log $output_dir/make_monovalent_key.err \
- --make-monovalent-key -monovalent-key $output_dir/monovalent_key_file.xf -polyvalent-key $output_dir/polyvalent_key_file.xf -polyvalent-proof $output_dir/polyvalent_proof_file.xf -start-timestamp 0 -end-timestamp 4294967295
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- xrnlib-cli \
- --decoding-conf -compiled-param -no-password \
- --encoding-conf -compiled-param -no-password \
- --arithmetic-conf -monomial-key $output_dir/monomial_key_file.xf \
- --sequence-conf -xmatrix $matrix_decompressed_file \
- --permutation-conf -arch $architecture \
- --make-certificate-symmetric -subject-monovalent-key $output_dir/monovalent_key_file.xf -subject-str \"Alice monovalent key\" -symmetric-certificate $output_dir/symmetric_certificate_file.xf -start-timestamp $(date +%s) -end-timestamp $(expr $(date +%s) + 100)
- "
- echo ""; echo $str; echo ""
- eval $str
- # make commitment
- str="
- xrnlib-cli \
- --decoding-conf -compiled-param -no-password \
- --encoding-conf -compiled-param -no-password \
- --arithmetic-conf -sym-certificate $output_dir/symmetric_certificate_file.xf \
- --sequence-conf -xmatrix $matrix_decompressed_file \
- --permutation-conf -arch $architecture \
- --make-commitment-sym-certificate -monomial-commitment $output_dir/monomial_commitment_file.xf -binomial-commitment $output_dir/binomial_commitment_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- # generate response
- str="
- xrnlib-cli \
- --decoding-conf -compiled-param -no-password \
- --permutation-conf -arch 128 \
- --logging-conf -lib-error-log $output_dir/binomial_commitment_128.err -lib-info-log $output_dir/binomial_commitment.info \
- --print-header -xrn-file $output_dir/binomial_commitment_file.xf ; \
- if grep -q XRN-ERR \"$output_dir/binomial_commitment_128.err\" ; then \
- rm $output_dir/binomial_commitment_128.err ; \
- rm $output_dir/binomial_commitment.info ; \
- xrnlib-cli \
- --decoding-conf -compiled-param -no-password \
- --permutation-conf -arch 256 \
- --logging-conf -lib-error-log $output_dir/binomial_commitment_256.err -lib-info-log $output_dir/binomial_commitment.info \
- --print-header -xrn-file $output_dir/binomial_commitment_file.xf ; \
- fi
- "
- echo ""; echo $str; echo ""
- eval $str
- bob_architecture=$(cat $output_dir/binomial_commitment.info | grep nbits | sed 's/^.*:.// ; s/.$//')
- bob_permutation_used=$(cat $output_dir/binomial_commitment.info | grep permutation_used | sed 's/^.*:.//')
- if [ "$bob_permutation_used" == "1" ] ; then
- bob_permutation_str=""
- else
- bob_permutation_str=" -no-permutation-key "
- fi
- str="
- xrnlib-cli \
- --encoding-conf -compiled-param -no-password \
- --permutation-conf -arch $bob_architecture $bob_permutation_str \
- --make-response -monomial-response $output_dir/monomial_response_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- # generate proof
- str="
- xrnlib-cli \
- --decoding-conf -compiled-param -no-password \
- --encoding-conf -compiled-param -no-password \
- --arithmetic-conf -monomial-key $output_dir/monomial_key_file.xf -sym-certificate $output_dir/symmetric_certificate_file.xf -monomial-commitment $output_dir/monomial_commitment_file.xf -monomial-response $output_dir/monomial_response_file.xf \
- --sequence-conf -xmatrix $matrix_decompressed_file \
- --permutation-conf -arch $architecture \
- --make-monomial-proof-sym-certificate -monomial-proof $output_dir/monomial_proof_file.xf
- "
- echo ""; echo $str; echo ""
- eval $str
- # check proof
- str="
- xrnlib-cli \
- --decoding-conf -compiled-param -no-password \
- --arithmetic-conf -sym-certificate $output_dir/symmetric_certificate_file.xf -binomial-commitment $output_dir/binomial_commitment_file.xf -monomial-response $output_dir/monomial_response_file.xf -monomial-proof $output_dir/monomial_proof_file.xf \
- --sequence-conf -xmatrix $matrix_decompressed_file \
- --permutation-conf -arch $bob_architecture \
- --logging-conf -lib-info-log $output_dir/lib_info_log_file.xf \
- --check-monomial-proof-sym-certificate
- "
- echo ""; echo $str; echo ""
- eval $str
- str="
- if ! [ -s $output_dir/lib_info_log_file.xf ]; then echo FAIL ; exit ; fi ; \
- if cat $output_dir/lib_info_log_file.xf | grep -q 'PASS' ; then echo 'PASS' ; else echo 'FAIL' ; fi
- "
- echo ""; echo $str; echo ""
- eval $str
|