Line data Source code
1 : #include "../fd_zksdk_private.h" 2 : 3 : static inline void 4 : grouped_ciphertext_validity_transcript_init( 5 : fd_zksdk_transcript_t * transcript, 6 33 : fd_zksdk_grp_ciph_2h_val_context_t const * context ) { 7 33 : fd_zksdk_transcript_init( transcript, FD_TRANSCRIPT_LITERAL("grouped-ciphertext-validity-2-handles-instruction") ); 8 33 : fd_zksdk_transcript_append_pubkey ( transcript, FD_TRANSCRIPT_LITERAL("first-pubkey"), context->pubkey1 ); 9 33 : fd_zksdk_transcript_append_pubkey ( transcript, FD_TRANSCRIPT_LITERAL("second-pubkey"), context->pubkey2 ); 10 33 : fd_zksdk_transcript_append_message( transcript, FD_TRANSCRIPT_LITERAL("grouped-ciphertext"), (uchar *)&context->grouped_ciphertext, sizeof(grp_ciph_2h_t) ); 11 33 : } 12 : 13 : int 14 33 : fd_zksdk_instr_verify_proof_grouped_ciphertext_2_handles_validity( void const * _context, void const * _proof ) { 15 33 : fd_zksdk_transcript_t transcript[1]; 16 33 : fd_zksdk_grp_ciph_2h_val_context_t const * context = _context; 17 33 : fd_zksdk_grp_ciph_2h_val_proof_t const * proof = _proof; 18 : 19 33 : grouped_ciphertext_validity_transcript_init( transcript, context ); 20 : 21 33 : return fd_zksdk_verify_proof_batched_grouped_ciphertext_2_handles_validity( 22 33 : proof, 23 33 : context->pubkey1, 24 33 : context->pubkey2, 25 33 : context->grouped_ciphertext.commitment, 26 33 : context->grouped_ciphertext.handles[0].handle, 27 33 : context->grouped_ciphertext.handles[1].handle, 28 33 : NULL, 29 33 : NULL, 30 33 : NULL, 31 33 : false, 32 33 : transcript 33 33 : ); 34 33 : }