Line data Source code
1 : #ifndef HEADER_fd_src_flamenco_runtime_program_zksdk_fd_merlin_h 2 : #define HEADER_fd_src_flamenco_runtime_program_zksdk_fd_merlin_h 3 : 4 : #include "../../../../fd_flamenco_base.h" 5 : 6 11046 : #define FD_MERLIN_LITERAL(STR) ("" STR), (sizeof(STR)-1) 7 : 8 : struct fd_merlin_strobe128 { 9 : union { 10 : ulong state[25]; 11 : uchar state_bytes[200]; 12 : }; 13 : uchar pos; 14 : uchar pos_begin; 15 : uchar cur_flags; 16 : }; 17 : typedef struct fd_merlin_strobe128 fd_merlin_strobe128_t; 18 : 19 : struct fd_merlin_transcript { 20 : fd_merlin_strobe128_t sctx; 21 : }; 22 : typedef struct fd_merlin_transcript fd_merlin_transcript_t; 23 : 24 : FD_PROTOTYPES_BEGIN 25 : 26 : void 27 : fd_merlin_transcript_init( fd_merlin_transcript_t * mctx, 28 : char const * const label, 29 : uint const label_len ); 30 : 31 : void 32 : fd_merlin_transcript_append_message( fd_merlin_transcript_t * mctx, 33 : char const * const label, 34 : uint const label_len, 35 : uchar const * message, 36 : uint const message_len ); 37 : 38 : void 39 : fd_merlin_transcript_append_u64( fd_merlin_transcript_t * mctx, 40 : char const * const label, 41 : uint const label_len, 42 : ulong const message_u64 ); 43 : 44 : void 45 : fd_merlin_transcript_challenge_bytes( fd_merlin_transcript_t * mctx, 46 : char const * const label, 47 : uint const label_len, 48 : uchar * buffer, 49 : uint const buffer_len ); 50 : 51 : FD_PROTOTYPES_END 52 : #endif /* HEADER_fd_src_flamenco_runtime_program_zksdk_fd_merlin_h */