diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2017-05-29 05:43:37 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2017-05-29 05:43:37 +0800 |
commit | 0dbdb0f7dc29d27ba815c9a9205a8bc989d117bd (patch) | |
tree | 8bf65db09128d18539016227811ce760dc5a1747 /go/bls/bls.go | |
parent | 14c6246a6ca198a89498d766641b07230e9c647d (diff) | |
download | dexon-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/bls/bls.go')
-rw-r--r-- | go/bls/bls.go | 37 |
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 -- |