Tested with print.elf and commit.elf:
print.elf
% cargo run -p cli --release -- prove executor/program_artifacts/rust/print.elf -o /tmp/proof.bin
Finished `release` profile [optimized] target(s) in 0.06s
Running `target/release/cli prove executor/program_artifacts/rust/print.elf -o /tmp/proof.bin`
Reading ELF file...
Generating proof...
PRINT VM: Hello, World!
Writing proof...
Proof written to "/tmp/proof.bin"
% cargo run -p cli --release -- verify /tmp/proof.bin executor/program_artifacts/rust/print.elf
Finished `release` profile [optimized] target(s) in 0.06s
Running `target/release/cli verify /tmp/proof.bin executor/program_artifacts/rust/print.elf`
Reading ELF file...
Reading proof...
Verifying proof...
Verification failed!
commit.elf
% echo hello > /tmp/input.bin
% cargo run -p cli --release -- prove executor/program_artifacts/rust/commit.elf --private-input /tmp/input.bin -o /tmp/proof.bin
Finished `release` profile [optimized] target(s) in 0.17s
Running `target/release/cli prove executor/program_artifacts/rust/commit.elf --private-input /tmp/input.bin -o /tmp/proof.bin`
Reading ELF file...
Reading private input file...
Generating proof...
PRINT VM: Private input received: [104, 101, 108, 108, 111, 10]
Writing proof...
Proof written to "/tmp/proof.bin"
% cargo run -p cli --release -- verify /tmp/proof.bin executor/program_artifacts/rust/commit.elf
Finished `release` profile [optimized] target(s) in 0.06s
Running `target/release/cli verify /tmp/proof.bin executor/program_artifacts/rust/commit.elf`
Reading ELF file...
Reading proof...
Verifying proof...
Verification failed!
Expected
Both programs should pass its verification, independent of the private input passed.
Tested with
print.elfandcommit.elf:print.elf
% cargo run -p cli --release -- prove executor/program_artifacts/rust/print.elf -o /tmp/proof.bin Finished `release` profile [optimized] target(s) in 0.06s Running `target/release/cli prove executor/program_artifacts/rust/print.elf -o /tmp/proof.bin` Reading ELF file... Generating proof... PRINT VM: Hello, World! Writing proof... Proof written to "/tmp/proof.bin" % cargo run -p cli --release -- verify /tmp/proof.bin executor/program_artifacts/rust/print.elf Finished `release` profile [optimized] target(s) in 0.06s Running `target/release/cli verify /tmp/proof.bin executor/program_artifacts/rust/print.elf` Reading ELF file... Reading proof... Verifying proof... Verification failed!commit.elf
Expected
Both programs should pass its verification, independent of the private input passed.