From f276736ceba61373fb60216256c477ab2ccffe29 Mon Sep 17 00:00:00 2001 From: Kamen Mladenov Date: Thu, 16 Jan 2025 12:47:40 +0200 Subject: feat(zkvms): Add zkm host --- zkvms/zkm/sdk/src/local/libsnark/libsnark.go | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 zkvms/zkm/sdk/src/local/libsnark/libsnark.go (limited to 'zkvms/zkm/sdk/src/local/libsnark/libsnark.go') diff --git a/zkvms/zkm/sdk/src/local/libsnark/libsnark.go b/zkvms/zkm/sdk/src/local/libsnark/libsnark.go new file mode 100644 index 0000000..9ef5024 --- /dev/null +++ b/zkvms/zkm/sdk/src/local/libsnark/libsnark.go @@ -0,0 +1,41 @@ +package main + +import ( + "C" +) +//import "fmt" + +//export Stark2Snark +func Stark2Snark(keypath *C.char, inputdir *C.char, outputdir *C.char, result **C.char) C.int { + // Convert C strings to Go strings + keyPath := C.GoString(keypath) + inputDir := C.GoString(inputdir) + outputDir := C.GoString(outputdir) + var prover SnarkProver + err := prover.Prove(keyPath, inputDir, outputDir) + if err != nil { + //fmt.Printf("Stark2Snark error: %v\n", err) + cErrMsg := C.CString(err.Error()) + *result = cErrMsg + return -1 + } + return 0 +} + +//export SetupAndGenerateSolVerifier +func SetupAndGenerateSolVerifier(inputdir *C.char, result **C.char) C.int { + // Convert C strings to Go strings + inputDir := C.GoString(inputdir) + var prover SnarkProver + err := prover.SetupAndGenerateSolVerifier(inputDir) + if err != nil { + //fmt.Printf("Setup error: %v\n", err) + cErrMsg := C.CString(err.Error()) + *result = cErrMsg + return -1 + } + return 0 +} + + +func main() {} -- cgit v1.2.3