package gomcaptcha /* #cgo LDFLAGS: ./lib/libmcaptcha_pow_ffi.a -ldl #include "./mcaptcha-pow-ffi/mcaptcha_pow_ffi.h" #include */ import "C" type ProofOfWork struct { Nonce uint64 Result string } func ProveWork(salt string, phrase string, difficulty uint) ProofOfWork { res := C.prove_work(C.CString(salt), C.CString(phrase), C.uint(difficulty)) return ProofOfWork{ Nonce: uint64(res.nonce), Result: C.GoString(res.result), } } func (v ProofOfWork) IsSufficientDifficulty(salt string, difficulty uint) bool { res := C.is_sufficient_difficulty( C.ulong(v.Nonce), C.CString(v.Result), C.CString(salt), C.uint(difficulty)) return bool(res) } func (v ProofOfWork) IsValidProof(phrase string, salt string) bool { res := C.is_valid_proof( C.ulong(v.Nonce), C.CString(v.Result), C.CString(phrase), C.CString(salt)) return bool(res) }