Playing with Zk-SNARKs. Some of the code taken from libsnark tutorial repositories from Christian Lundkvist and Howard Wu. The latter contains the build instructions.
- Example to prove knowledge of factors of a number, i.e given a public output 
c, prove the knowledge of 2 numbersaandbsuch thata * b = c. - Prove the knowledge of pre-image of a sha256 hash. Uses libsnark's sha256 gadget. Byte representation of inputs and output can be generated using python helper script. Use the function 
short_string_hashto generate bytes. - MiMC-Fiestel hash pre-image. 2 implementations, one from josojo that does exponentiation (x^3) during round and other does inverse (x^-1) during the round as suggested by Dmitry Khovratovich
 - Shark MiMC as suggested by Dmitry Khovratovich. Contains 2 gadgets, 
SharkMimc_cube_gadgetwhich treatsx^3as S-box function andSharkMimc_inverse_gadgetwhich treatsx^-1as S-box function.