From 19b37de33aed66cfa869b958b16b7bc08f2d5954 Mon Sep 17 00:00:00 2001 From: MITSUNARI Shigeo Date: Tue, 6 Sep 2016 13:44:29 +0900 Subject: add go sample --- go/main.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 go/main.go (limited to 'go/main.go') diff --git a/go/main.go b/go/main.go new file mode 100644 index 0000000..ab902f2 --- /dev/null +++ b/go/main.go @@ -0,0 +1,42 @@ +package main + +/* +#cgo CFLAGS:-I../include +#cgo LDFLAGS:-lbls -lbls_if -lmcl -lgmp -lgmpxx -L../lib -L../../mcl/lib -lstdc++ -lcrypto +#include "bls_if.h" +*/ +import "C" +import "fmt" +import "unsafe" + +func main() { + fmt.Println("init") + C.blsInit() + + fmt.Println("create secret key") + sec := C.blsSecretKeyCreate() + C.blsSecretKeyInit(sec) + C.blsSecretKeyPut(sec) + + fmt.Println("create public key") + pub := C.blsPublicKeyCreate() + C.blsSecretKeyGetPublicKey(sec, pub) + + C.blsPublicKeyPut(pub) + + sign := C.blsSignCreate() + + msg := "Hello bls" + pmsg := C.CString(msg) + fmt.Println("sign message") + C.blsSecretKeySign(sec, sign, pmsg, C.size_t(len(msg))) + + C.blsSignPut(sign) + + fmt.Println("verify:", C.blsSignVerify(sign, pub, pmsg, C.size_t(len(msg)))) + + C.free(unsafe.Pointer(pmsg)) + + C.blsPublicKeyDestroy(pub) + C.blsSecretKeyDestroy(sec) +} -- cgit v1.2.3