gnark_bn254_verifier/
lib.rs1pub use ark_bn254::Fr;
2
3use converter::{
4 load_groth16_proof_from_bytes, load_groth16_verifying_key_from_bytes,
5 load_plonk_proof_from_bytes, load_plonk_verifying_key_from_bytes,
6};
7use verify::{verify_groth16, verify_plonk};
8
9mod constants;
10mod converter;
11mod element;
12mod hash_to_field;
13mod kzg;
14mod prove;
15mod transcript;
16mod verify;
17
18pub enum ProvingSystem {
19 Plonk,
20 Groth16,
21}
22
23pub fn verify(
24 proof: &[u8],
25 vk: &[u8],
26 public_inputs: &[Fr],
27 proving_system: ProvingSystem,
28) -> bool {
29 match proving_system {
30 ProvingSystem::Plonk => {
31 let proof = load_plonk_proof_from_bytes(proof).unwrap();
32 let vk = load_plonk_verifying_key_from_bytes(vk).unwrap();
33
34 match verify_plonk(&vk, &proof, public_inputs) {
35 Ok(result) => result,
36 Err(e) => {
37 println!("Error: {:?}", e);
38 false
39 }
40 }
41 }
42 ProvingSystem::Groth16 => {
43 let proof = load_groth16_proof_from_bytes(proof).unwrap();
44 let vk = load_groth16_verifying_key_from_bytes(vk).unwrap();
45
46 match verify_groth16(&vk, &proof, public_inputs) {
47 Ok(result) => result,
48 Err(e) => {
49 println!("Error: {:?}", e);
50 false
51 }
52 }
53 }
54 }
55}