conversions.sh 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  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. # generate keys and hash
  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. str="
  23. xrnlib-cli \
  24. --decoding-conf -compiled-param -no-password \
  25. --encoding-conf -compiled-param -no-password \
  26. --sequence-conf -xmatrix $matrix_decompressed_file \
  27. --permutation-conf -arch $architecture $permutation_str \
  28. --make-start-point -start-point $output_dir/start_point_file.xf
  29. "
  30. echo ""; echo $str; echo ""
  31. eval $str
  32. str="
  33. xrnlib-cli \
  34. --decoding-conf -compiled-param -no-password \
  35. --encoding-conf -compiled-param -no-password \
  36. --arithmetic-conf -start-point $output_dir/start_point_file.xf -monomial-key $output_dir/monomial_key_file.xf \
  37. --sequence-conf -xmatrix $matrix_decompressed_file \
  38. --permutation-conf -arch $architecture \
  39. --make-binomial-key -binomial-key $output_dir/binomial_key_file.xf
  40. "
  41. echo ""; echo $str; echo ""
  42. eval $str
  43. str="
  44. xrnlib-cli \
  45. --decoding-conf -compiled-param -no-password \
  46. --encoding-conf -compiled-param -no-password \
  47. --sequence-conf -xmatrix $matrix_decompressed_file \
  48. --permutation-conf -arch $architecture $permutation_str \
  49. --make-hash -plain-text $output_dir/monomial_key_file.xf -hash $output_dir/hash_file.xf
  50. "
  51. echo ""; echo $str; echo ""
  52. eval $str
  53. # convert binomial key to start point
  54. str="
  55. xrnlib-cli \
  56. --decoding-conf -compiled-param -no-password \
  57. --encoding-conf -compiled-param -no-password \
  58. --arithmetic-conf -binomial-key $output_dir/binomial_key_file.xf \
  59. --permutation-conf -arch $architecture \
  60. --convert-binomial-key-to-start-point -start-point $output_dir/start_point_file_1.xf
  61. "
  62. echo ""; echo $str; echo ""
  63. eval $str
  64. str="
  65. xrnlib-cli \
  66. --decoding-conf -compiled-param -no-password \
  67. --permutation-conf -arch $architecture \
  68. --logging-conf -lib-info-log $output_dir/start_point_file.json \
  69. --print-header -xrn-file $output_dir/start_point_file.xf
  70. "
  71. echo ""; echo $str; echo ""
  72. eval $str
  73. str="
  74. xrnlib-cli \
  75. --decoding-conf -compiled-param -no-password \
  76. --permutation-conf -arch $architecture \
  77. --logging-conf -lib-info-log $output_dir/start_point_file_1.json \
  78. --print-header -xrn-file $output_dir/start_point_file_1.xf
  79. "
  80. echo ""; echo $str; echo ""
  81. eval $str
  82. str="
  83. cmp --silent $output_dir/start_point_file.json $output_dir/start_point_file_1.json || echo 'FAIL'
  84. "
  85. echo ""; echo $str; echo ""
  86. eval $str
  87. # convert start point to point and vice versa
  88. str="
  89. xrnlib-cli \
  90. --decoding-conf -compiled-param -no-password \
  91. --encoding-conf -compiled-param -no-password \
  92. --arithmetic-conf -start-point $output_dir/start_point_file_1.xf \
  93. --permutation-conf -arch $architecture \
  94. --convert-start-point-to-point -point $output_dir/point_file.xf
  95. "
  96. echo ""; echo $str; echo ""
  97. eval $str
  98. str="
  99. xrnlib-cli \
  100. --decoding-conf -compiled-param -no-password \
  101. --encoding-conf -compiled-param -no-password \
  102. --arithmetic-conf -point $output_dir/point_file.xf \
  103. --permutation-conf -arch $architecture \
  104. --convert-point-to-start-point -start-point $output_dir/start_point_file_2.xf
  105. "
  106. echo ""; echo $str; echo ""
  107. eval $str
  108. str="
  109. xrnlib-cli \
  110. --decoding-conf -compiled-param -no-password \
  111. --permutation-conf -arch $architecture \
  112. --logging-conf -lib-info-log $output_dir/start_point_file_2.json \
  113. --print-header -xrn-file $output_dir/start_point_file_2.xf
  114. "
  115. echo ""; echo $str; echo ""
  116. eval $str
  117. str="
  118. cat $output_dir/start_point_file_1.json | grep start > $output_dir/start_point_file_1.stripped ; \
  119. cat $output_dir/start_point_file_2.json | grep start > $output_dir/start_point_file_2.stripped ; \
  120. cmp --silent $output_dir/start_point_file_1.stripped $output_dir/start_point_file_2.stripped || echo 'FAIL'
  121. "
  122. echo ""; echo $str; echo ""
  123. eval $str
  124. # convert monomial key to point and vice versa
  125. str="
  126. xrnlib-cli \
  127. --decoding-conf -compiled-param -no-password \
  128. --encoding-conf -compiled-param -no-password \
  129. --arithmetic-conf -point $output_dir/point_file.xf \
  130. --permutation-conf -arch $architecture \
  131. --convert-point-to-monomial-key -monomial-key $output_dir/monomial_key_file_1.xf
  132. "
  133. echo ""; echo $str; echo ""
  134. eval $str
  135. str="
  136. xrnlib-cli \
  137. --decoding-conf -compiled-param -no-password \
  138. --encoding-conf -compiled-param -no-password \
  139. --arithmetic-conf -monomial-key $output_dir/monomial_key_file_1.xf \
  140. --permutation-conf -arch $architecture \
  141. --convert-monomial-key-to-point -point $output_dir/point_file_1.xf
  142. "
  143. echo ""; echo $str; echo ""
  144. eval $str
  145. str="
  146. xrnlib-cli \
  147. --decoding-conf -compiled-param -no-password \
  148. --permutation-conf -arch $architecture \
  149. --logging-conf -lib-info-log $output_dir/point_file_1.json \
  150. --print-header -xrn-file $output_dir/point_file_1.xf
  151. "
  152. echo ""; echo $str; echo ""
  153. eval $str
  154. str="
  155. xrnlib-cli \
  156. --decoding-conf -compiled-param -no-password \
  157. --permutation-conf -arch $architecture \
  158. --logging-conf -lib-info-log $output_dir/point_file.json \
  159. --print-header -xrn-file $output_dir/point_file.xf
  160. "
  161. echo ""; echo $str; echo ""
  162. eval $str
  163. str="
  164. cmp --silent $output_dir/point_file_1.json $output_dir/point_file.json || echo 'FAIL'
  165. "
  166. echo ""; echo $str; echo ""
  167. eval $str
  168. # convert monomial key to monomial commitment and vice versa
  169. str="
  170. xrnlib-cli \
  171. --decoding-conf -compiled-param -no-password \
  172. --encoding-conf -compiled-param -no-password \
  173. --arithmetic-conf -monomial-key $output_dir/monomial_key_file.xf \
  174. --permutation-conf -arch $architecture \
  175. --convert-monomial-key-to-monomial-commitment -monomial-commitment $output_dir/monomial_commitment_file.xf
  176. "
  177. echo ""; echo $str; echo ""
  178. eval $str
  179. str="
  180. xrnlib-cli \
  181. --decoding-conf -compiled-param -no-password \
  182. --encoding-conf -compiled-param -no-password \
  183. --arithmetic-conf -monomial-commitment $output_dir/monomial_commitment_file.xf \
  184. --permutation-conf -arch $architecture \
  185. --convert-monomial-commitment-to-monomial-key -monomial-key $output_dir/monomial_key_file_2.xf
  186. "
  187. echo ""; echo $str; echo ""
  188. eval $str
  189. str="
  190. xrnlib-cli \
  191. --decoding-conf -compiled-param -no-password \
  192. --permutation-conf -arch $architecture \
  193. --logging-conf -lib-info-log $output_dir/monomial_key_file_2.json \
  194. --print-header -xrn-file $output_dir/monomial_key_file_2.xf
  195. "
  196. echo ""; echo $str; echo ""
  197. eval $str
  198. str="
  199. xrnlib-cli \
  200. --decoding-conf -compiled-param -no-password \
  201. --permutation-conf -arch $architecture \
  202. --logging-conf -lib-info-log $output_dir/monomial_key_file.json \
  203. --print-header -xrn-file $output_dir/monomial_key_file.xf
  204. "
  205. echo ""; echo $str; echo ""
  206. eval $str
  207. str="
  208. cmp --silent $output_dir/monomial_key_file_2.json $output_dir/monomial_key_file.json || echo 'FAIL'
  209. "
  210. echo ""; echo $str; echo ""
  211. eval $str
  212. #convert hash to point
  213. str="
  214. xrnlib-cli \
  215. --decoding-conf -compiled-param -no-password \
  216. --encoding-conf -compiled-param -no-password \
  217. --arithmetic-conf -hash $output_dir/hash_file.xf \
  218. --permutation-conf -arch $architecture \
  219. --convert-hash-to-point -point $output_dir/point_file_2.xf
  220. "
  221. echo ""; echo $str; echo ""
  222. eval $str
  223. str="
  224. if [ ! -s $output_dir/point_file_2.xf ] ; then echo FAIL ; fi
  225. "
  226. echo ""; echo $str; echo ""
  227. eval $str
  228. #convert binomial key to asymmetric signature
  229. str="
  230. xrnlib-cli \
  231. --decoding-conf -compiled-param -no-password \
  232. --encoding-conf -compiled-param -no-password \
  233. --arithmetic-conf -binomial-key $output_dir/binomial_key_file.xf \
  234. --permutation-conf -arch $architecture \
  235. --convert-binomial-key-to-asymmetric-signature -asymmetric-signature $output_dir/asymmetric_signature.xf
  236. "
  237. echo ""; echo $str; echo ""
  238. eval $str
  239. str="
  240. xrnlib-cli \
  241. --decoding-conf -compiled-param -no-password \
  242. --encoding-conf -compiled-param -no-password \
  243. --arithmetic-conf -asy-signature $output_dir/asymmetric_signature.xf \
  244. --permutation-conf -arch $architecture \
  245. --convert-asymmetric-signature-to-binomial-key -binomial-key $output_dir/binomial_key_file2.xf
  246. "
  247. echo ""; echo $str; echo ""
  248. eval $str
  249. str="
  250. xrnlib-cli \
  251. --decoding-conf -compiled-param -no-password \
  252. --permutation-conf -arch $architecture \
  253. --logging-conf -lib-info-log $output_dir/binomial_key_file.json \
  254. --print-header -xrn-file $output_dir/binomial_key_file.xf
  255. "
  256. echo ""; echo $str; echo ""
  257. eval $str
  258. str="
  259. xrnlib-cli \
  260. --decoding-conf -compiled-param -no-password \
  261. --permutation-conf -arch $architecture \
  262. --logging-conf -lib-info-log $output_dir/binomial_key_file2.json \
  263. --print-header -xrn-file $output_dir/binomial_key_file2.xf
  264. "
  265. echo ""; echo $str; echo ""
  266. eval $str
  267. str="
  268. cmp --silent $output_dir/binomial_key_file2.json $output_dir/binomial_key_file.json || echo 'FAIL'
  269. "
  270. echo ""; echo $str; echo ""
  271. eval $str
  272. #convert binomial key to symmetric signature
  273. str="
  274. xrnlib-cli \
  275. --decoding-conf -compiled-param -no-password \
  276. --encoding-conf -compiled-param -no-password \
  277. --arithmetic-conf -binomial-key $output_dir/binomial_key_file.xf \
  278. --permutation-conf -arch $architecture \
  279. --convert-binomial-key-to-symmetric-signature -symmetric-signature $output_dir/symmetric_signature.xf
  280. "
  281. echo ""; echo $str; echo ""
  282. eval $str
  283. str="
  284. xrnlib-cli \
  285. --decoding-conf -compiled-param -no-password \
  286. --encoding-conf -compiled-param -no-password \
  287. --arithmetic-conf -sym-signature $output_dir/symmetric_signature.xf \
  288. --permutation-conf -arch $architecture \
  289. --convert-symmetric-signature-to-binomial-key -binomial-key $output_dir/binomial_key_file3.xf
  290. "
  291. echo ""; echo $str; echo ""
  292. eval $str
  293. str="
  294. xrnlib-cli \
  295. --decoding-conf -compiled-param -no-password \
  296. --permutation-conf -arch $architecture \
  297. --logging-conf -lib-info-log $output_dir/binomial_key_file3.json \
  298. --print-header -xrn-file $output_dir/binomial_key_file3.xf
  299. "
  300. echo ""; echo $str; echo ""
  301. eval $str
  302. str="
  303. cmp --silent $output_dir/binomial_key_file3.json $output_dir/binomial_key_file.json || echo 'FAIL'
  304. "
  305. echo ""; echo $str; echo ""
  306. eval $str