Jif poker - an implementation of mental poker protocol in Jif
License - BSD

Content of directory
====================
src/mp   - implemenation
src/java - required Java signatures

How to compile:
====================
prompt> mkdir bin
prompt> cd src
prompt>./compile.sh mp/*.jif

How to run:
====================
prompt> cd ../bin
prompt> ./start.sh

Sample output:
====================

++ starting ...
:: R 'Playing mental poker...\n'
:: L 'Playing mental poker...\n'
:: R 'Initializing Bob\n'
:: L 'Initializing Alice\n'
:: L 'wrote 5 links\n'
:: L 'read 1 links\n'
:: L 'read 2 links\n'
:: L 'read 3 links\n'
:: L 'read 4 links\n'
:: L 'read 5 links\n'
:: L 'total 10 links\n'
:: R 'wrote 5 links\n'
:: R 'read 1 links\n'
:: R 'read 2 links\n'
:: R 'read 3 links\n'
:: R 'read 4 links\n'
:: R 'read 5 links\n'
:: R 'total 10 links\n'
:: R 'Bob trying to obtain card # 1\n'
:: L 'got drawCard link\n'
:: L 'processCardDraw OK\n'
:: R 'drawCard OK\n'
:: R 'got processCardDraw link\n'
:: L 'got processSelfCardDraw link\n'
:: L 'Alice trying to obtain card # 2\n'
:: L 'drawCard OK\n'
:: L 'processSelfCardDraw OK\n'
:: R 'processSelfCardDraw OK\n'
:: R 'Card obtained\n'
:: R 'got drawCard link\n'
:: R 'got processSelfCardDraw link\n'
:: L 'got processCardDraw0 link\n'
:: L 'finishCardDraw OK\n'
:: L 'Card obtained\n'
:: R 'processCardDraw0 OK\n'
:: R 'Bob trying to obtain card # 3\n'
:: L 'got drawCard link\n'
:: L 'processCardDraw OK\n'
:: R 'drawCard OK\n'
:: R 'got processCardDraw link\n'
:: L 'got processSelfCardDraw link\n'
:: L 'Alice trying to obtain card # 4\n'
:: L 'drawCard OK\n'
:: L 'processSelfCardDraw OK\n'
:: R 'processSelfCardDraw OK\n'
:: R 'Card obtained\n'
:: R 'got drawCard link\n'
:: R 'got processSelfCardDraw link\n'
:: L 'got processCardDraw0 link\n'
:: L 'finishCardDraw OK\n'
:: L 'Card obtained\n'
:: R 'processCardDraw0 OK\n'
:: R 'Bob trying to obtain card # 5\n'
:: L 'got drawCard link\n'
:: L 'processCardDraw OK\n'
:: R 'drawCard OK\n'
:: R 'got processCardDraw link\n'
:: L 'got processSelfCardDraw link\n'
:: L 'Alice trying to obtain card # 6\n'
:: L 'drawCard OK\n'
:: L 'processSelfCardDraw OK\n'
:: R 'processSelfCardDraw OK\n'
:: R 'Card obtained\n'
:: R 'got drawCard link\n'
:: R 'got processSelfCardDraw link\n'
:: L 'got processCardDraw0 link\n'
:: L 'finishCardDraw OK\n'
:: L 'Card obtained\n'
:: L 'Revealing encryption key\n'
:: L 'Revealing permutation\n'
:: L 'Revealing permutation matrix\n'
:: L 'Reading other encryption key\n'
:: R 'processCardDraw0 OK\n'
:: R 'Revealing encryption key\n'
:: L 'Reading other permutation\n'
:: R 'Revealing permutation\n'
:: L 'Reading other permutation matrix\n'
:: R 'Revealing permutation matrix\n'
:: L 'Actual validation should go here\n'
:: L 'Alice z_i value 2329544689\n'
:: L 'Alice C_p_i value\n'
:: L 'Alice D value\n'
:: L 'Alice E value\n'
:: L 'Alice ew value\n'
:: L 'Bob z_i value 4052617313\n'
:: L 'Bob C_p_i value\n'
:: L 'Bob D value\n'
:: L 'Bob E value\n'
:: L 'Bob ew value\n'
:: L 'Bob w_i value\n'
:: L 'Alice w_i value\n'
:: L 'Bob en_wi value\n'
:: L 'Alice w_i value\n'
:: L 'Alice en_wi value\n'
:: L 'Bob en_wi value\n'
:: L 'Bob w_i value\n'
:: L 'Alice w_i value\n'
:: L 'Bob en_wi value\n'
:: L 'Alice w_i value\n'
:: L 'Alice en_wi value\n'
:: L 'Bob en_wi value\n'
:: L 'Bob w_i value\n'
:: L 'Alice w_i value\n'
:: L 'Bob en_wi value\n'
:: L 'Alice w_i value\n'
:: L 'Alice en_wi value\n'
:: L 'Bob en_wi value\n'
:: L 'validation result\n'
:: L 'true\n'
:: L '  Cards obtained: [1 4 5  ]\n'
:: R 'Reading other encryption key\n'
:: R 'Reading other permutation\n'
:: R 'Reading other permutation matrix\n'
:: R 'Actual validation should go here\n'
:: R 'Bob z_i value 4052617313\n'
:: R 'Bob C_p_i value\n'
:: R 'Bob D value\n'
:: R 'Bob E value\n'
:: R 'Bob ew value\n'
:: R 'Alice z_i value 2329544689\n'
:: R 'Alice C_p_i value\n'
:: R 'Alice D value\n'
:: R 'Alice E value\n'
:: R 'Alice ew value\n'
:: R 'Bob w_i value\n'
:: R 'Alice w_i value\n'
:: R 'Bob en_wi value\n'
:: R 'Alice w_i value\n'
:: R 'Alice en_wi value\n'
:: R 'Bob en_wi value\n'
:: R 'Bob w_i value\n'
:: R 'Alice w_i value\n'
:: R 'Bob en_wi value\n'
:: R 'Alice w_i value\n'
:: R 'Alice en_wi value\n'
:: R 'Bob en_wi value\n'
:: R 'Bob w_i value\n'
:: R 'Alice w_i value\n'
:: R 'Bob en_wi value\n'
:: R 'Alice w_i value\n'
:: R 'Alice en_wi value\n'
:: R 'Bob en_wi value\n'
:: R 'validation result\n'
:: R 'true\n'
:: R '  Cards obtained: [2 3 8  ]\n'
++ all done.
