symmetric_signature.sh 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #parse argument
  2. architecture=$1
  3. permutation=$2
  4. matrix_decompressed_file=$3
  5. matrix_comp_file=$4
  6. output_dir=$5
  7. lorem_ipsum_file=$6
  8. if [ $permutation -eq 0 ] ; then
  9. permutation_str=""
  10. else
  11. permutation_str=" -no-permutation-key "
  12. fi
  13. # make key
  14. str="
  15. xrnlib-cli \
  16. --encoding-conf -compiled-param -no-password \
  17. --permutation-conf -arch $architecture $permutation_str \
  18. --make-monomial-key -monomial-key $output_dir/monomial_key_file.xf
  19. "
  20. echo ""; echo $str; echo ""
  21. eval $str
  22. # make signature
  23. str="
  24. xrnlib-cli \
  25. --decoding-conf -compiled-param -no-password \
  26. --encoding-conf -compiled-param -no-password \
  27. --arithmetic-conf -monomial-key $output_dir/monomial_key_file.xf \
  28. --sequence-conf -xmatrix $matrix_decompressed_file \
  29. --permutation-conf -arch $architecture \
  30. --make-signature-symmetric -plain-text $lorem_ipsum_file -symmetric-signature $output_dir/symmetric_signature_file.xf
  31. "
  32. echo ""; echo $str; echo ""
  33. eval $str
  34. # check signature
  35. str="
  36. xrnlib-cli \
  37. --decoding-conf -compiled-param -no-password \
  38. --encoding-conf -compiled-param -no-password \
  39. --arithmetic-conf -monomial-key $output_dir/monomial_key_file.xf -sym-signature $output_dir/symmetric_signature_file.xf \
  40. --sequence-conf -xmatrix $matrix_decompressed_file \
  41. --permutation-conf -arch $architecture \
  42. --logging-conf -lib-info-log $output_dir/lib_info_log_file.xf \
  43. --check-signature-symmetric -plain-text $lorem_ipsum_file
  44. "
  45. echo ""; echo $str; echo ""
  46. eval $str
  47. str="
  48. if ! [ -s $output_dir/lib_info_log_file.xf ]; then echo FAIL ; exit ; fi ; \
  49. if grep -q FAIL \"$output_dir/lib_info_log_file.xf\" ; then echo FAIL ; exit ; fi
  50. "
  51. echo ""; echo $str; echo ""
  52. eval $str
  53. # generate a wrong binomial key
  54. str="
  55. xrnlib-cli \
  56. --encoding-conf -compiled-param -no-password \
  57. --permutation-conf -arch $architecture $permutation_str \
  58. --make-monomial-key -monomial-key $output_dir/wrong_monomial_key_file.xf
  59. "
  60. echo ""; echo $str; echo ""
  61. eval $str
  62. # check signature
  63. str="
  64. xrnlib-cli \
  65. --decoding-conf -compiled-param -no-password \
  66. --encoding-conf -compiled-param -no-password \
  67. --arithmetic-conf -monomial-key $output_dir/wrong_monomial_key_file.xf -sym-signature $output_dir/symmetric_signature_file.xf \
  68. --sequence-conf -xmatrix $matrix_decompressed_file \
  69. --permutation-conf -arch $architecture \
  70. --logging-conf -lib-info-log $output_dir/wrong_lib_info_log_file.xf \
  71. --check-signature-symmetric -plain-text $lorem_ipsum_file
  72. "
  73. echo ""; echo $str; echo ""
  74. eval $str
  75. str="
  76. if ! [ -s $output_dir/wrong_lib_info_log_file.xf ]; then echo FAIL ; exit ; fi ; \
  77. if grep -q PASS \"$output_dir/wrong_lib_info_log_file.xf\" ; then echo FAIL ; exit ; fi
  78. "
  79. echo ""; echo $str; echo ""
  80. eval $str