1- use std:: slice;
2- use sp1_sdk:: ProverClient ;
31use lazy_static:: lazy_static;
2+ use sp1_sdk:: ProverClient ;
3+ use std:: slice;
44
55lazy_static ! {
66 static ref PROVER_CLIENT : ProverClient = ProverClient :: new( ) ;
@@ -13,15 +13,13 @@ pub extern "C" fn verify_sp1_proof_ffi(
1313 elf_bytes : * const u8 ,
1414 elf_len : u32 ,
1515) -> bool {
16- let proof_bytes = unsafe {
17- assert ! ( !proof_bytes. is_null( ) ) ;
18- slice:: from_raw_parts ( proof_bytes, proof_len as usize )
19- } ;
16+ if proof_bytes. is_null ( ) || elf_bytes. is_null ( ) {
17+ return false ;
18+ }
19+
20+ let proof_bytes = unsafe { slice:: from_raw_parts ( proof_bytes, proof_len as usize ) } ;
2021
21- let elf_bytes = unsafe {
22- assert ! ( !elf_bytes. is_null( ) ) ;
23- slice:: from_raw_parts ( elf_bytes, elf_len as usize )
24- } ;
22+ let elf_bytes = unsafe { slice:: from_raw_parts ( elf_bytes, elf_len as usize ) } ;
2523
2624 if let Ok ( proof) = bincode:: deserialize ( proof_bytes) {
2725 let ( _pk, vk) = PROVER_CLIENT . setup ( elf_bytes) ;
@@ -35,17 +33,16 @@ pub extern "C" fn verify_sp1_proof_ffi(
3533mod tests {
3634 use super :: * ;
3735
38- const PROOF : & [ u8 ] =
39- include_bytes ! ( "../../../../scripts/test_files/sp1/sp1_fibonacci.proof" ) ;
40- const ELF : & [ u8 ] =
41- include_bytes ! ( "../../../../scripts/test_files/sp1/sp1_fibonacci.elf" ) ;
36+ const PROOF : & [ u8 ] = include_bytes ! ( "../../../../scripts/test_files/sp1/sp1_fibonacci.proof" ) ;
37+ const ELF : & [ u8 ] = include_bytes ! ( "../../../../scripts/test_files/sp1/sp1_fibonacci.elf" ) ;
4238
4339 #[ test]
4440 fn verify_sp1_proof_with_elf_works ( ) {
4541 let proof_bytes = PROOF . as_ptr ( ) ;
4642 let elf_bytes = ELF . as_ptr ( ) ;
4743
48- let result = verify_sp1_proof_ffi ( proof_bytes, PROOF . len ( ) as u32 , elf_bytes, ELF . len ( ) as u32 ) ;
44+ let result =
45+ verify_sp1_proof_ffi ( proof_bytes, PROOF . len ( ) as u32 , elf_bytes, ELF . len ( ) as u32 ) ;
4946 assert ! ( result)
5047 }
5148
@@ -54,7 +51,12 @@ mod tests {
5451 let proof_bytes = PROOF . as_ptr ( ) ;
5552 let elf_bytes = ELF . as_ptr ( ) ;
5653
57- let result = verify_sp1_proof_ffi ( proof_bytes, ( PROOF . len ( ) - 1 ) as u32 , elf_bytes, ELF . len ( ) as u32 ) ;
54+ let result = verify_sp1_proof_ffi (
55+ proof_bytes,
56+ ( PROOF . len ( ) - 1 ) as u32 ,
57+ elf_bytes,
58+ ELF . len ( ) as u32 ,
59+ ) ;
5860 assert ! ( !result)
5961 }
6062}
0 commit comments