#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>

extern int zk_verify(const uint8_t *, int32_t, const uint8_t *, int32_t,
                     const uint8_t *, int32_t);

extern bool zk_compute(const uint8_t *, int32_t, const uint8_t *, int32_t,
                       const uint8_t *, int32_t, const uint8_t *, int32_t,
                       const uint8_t *, int32_t, bool, bool, bool);

extern bool zk_compile(const uint8_t *, int32_t, const uint8_t *, int32_t,
                       const uint8_t *, int32_t, const uint8_t *, int32_t,
                       const uint8_t *, int32_t, const uint8_t *, int32_t,
                       bool);

extern bool zk_setup(const uint8_t *, int32_t, const uint8_t *, int32_t,
                     const uint8_t *, int32_t, const uint8_t *, int32_t,
                     const uint8_t *, int32_t, const uint8_t *, int32_t);

extern bool zk_generate(const uint8_t *, int32_t, const uint8_t *, int32_t,
                        const uint8_t *, int32_t, const uint8_t *, int32_t,
                        const uint8_t *, int32_t, const uint8_t *, int32_t,
                        bool);