aboutsummaryrefslogtreecommitdiffstats
path: root/go
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2017-05-29 05:43:37 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2017-05-29 05:43:37 +0800
commit0dbdb0f7dc29d27ba815c9a9205a8bc989d117bd (patch)
tree8bf65db09128d18539016227811ce760dc5a1747 /go
parent14c6246a6ca198a89498d766641b07230e9c647d (diff)
downloaddexon-bls-0dbdb0f7dc29d27ba815c9a9205a8bc989d117bd.tar
dexon-bls-0dbdb0f7dc29d27ba815c9a9205a8bc989d117bd.tar.gz
dexon-bls-0dbdb0f7dc29d27ba815c9a9205a8bc989d117bd.tar.bz2
dexon-bls-0dbdb0f7dc29d27ba815c9a9205a8bc989d117bd.tar.lz
dexon-bls-0dbdb0f7dc29d27ba815c9a9205a8bc989d117bd.tar.xz
dexon-bls-0dbdb0f7dc29d27ba815c9a9205a8bc989d117bd.tar.zst
dexon-bls-0dbdb0f7dc29d27ba815c9a9205a8bc989d117bd.zip
go/bls uses GetHex/SetHex
Diffstat (limited to 'go')
-rw-r--r--go/bls/bls.go37
1 files changed, 26 insertions, 11 deletions
diff --git a/go/bls/bls.go b/go/bls/bls.go
index f342615..c569f1f 100644
--- a/go/bls/bls.go
+++ b/go/bls/bls.go
@@ -10,7 +10,6 @@ package bls
import "C"
import "fmt"
import "unsafe"
-import "encoding/hex"
// CurveFp254BNb -- 254 bit curve
const CurveFp254BNb = 0
@@ -315,16 +314,24 @@ func (pub *PublicKey) Deserialize(buf []byte) error {
// GetHexString --
func (pub *PublicKey) GetHexString() string {
- return fmt.Sprintf("%x", pub.Serialize())
+ buf := make([]byte, 1024)
+ // #nosec
+ n := C.blsPublicKeyGetHexStr((*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), pub.getPointer())
+ if n == 0 {
+ panic("err blsPublicKeyGetHexStr")
+ }
+ return string(buf[:n])
}
// SetHexString --
func (pub *PublicKey) SetHexString(s string) error {
- b, err := hex.DecodeString(s)
- if err != nil {
- return err
+ buf := []byte(s)
+ // #nosec
+ err := C.blsPublicKeySetHexStr(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)))
+ if err != 0 {
+ return fmt.Errorf("err blsPublicKeySetHexStr %x", buf)
}
- return pub.Deserialize(b)
+ return nil
}
// IsSame --
@@ -389,16 +396,24 @@ func (sign *Sign) Deserialize(buf []byte) error {
// GetHexString --
func (sign *Sign) GetHexString() string {
- return fmt.Sprintf("%x", sign.Serialize())
+ buf := make([]byte, 1024)
+ // #nosec
+ n := C.blsSignatureGetHexStr((*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), sign.getPointer())
+ if n == 0 {
+ panic("err blsSignatureGetHexStr")
+ }
+ return string(buf[:n])
}
// SetHexString --
func (sign *Sign) SetHexString(s string) error {
- b, err := hex.DecodeString(s)
- if err != nil {
- return err
+ buf := []byte(s)
+ // #nosec
+ err := C.blsSignatureSetHexStr(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)))
+ if err != 0 {
+ return fmt.Errorf("err blsSignatureSetHexStr %x", buf)
}
- return sign.Deserialize(b)
+ return nil
}
// IsSame --