aboutsummaryrefslogtreecommitdiffstats
path: root/go/bls/bls.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/bls/bls.go')
-rw-r--r--go/bls/bls.go56
1 files changed, 40 insertions, 16 deletions
diff --git a/go/bls/bls.go b/go/bls/bls.go
index f931bbe..45408ac 100644
--- a/go/bls/bls.go
+++ b/go/bls/bls.go
@@ -24,8 +24,12 @@ const CurveFp382_2 = 2
// Init --
// call this function before calling all the other operations
// this function is not thread safe
-func Init(curve int) {
- C.blsInit(C.int(curve), C.BLS_MAX_OP_UNIT_SIZE)
+func Init(curve int) error {
+ err := C.blsInit(C.int(curve), C.BLS_MAX_OP_UNIT_SIZE)
+ if err != 0 {
+ return fmt.Errorf("ERR Init curve=%d\n", curve)
+ }
+ return nil
}
// GetMaxOpUnitSize --
@@ -86,7 +90,7 @@ func (id *ID) GetByte(ioMode int) []byte {
func (id *ID) SetByte(buf []byte, ioMode int) error {
// #nosec
err := C.blsIdSetStr(id.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode))
- if err > 0 {
+ if err != 0 {
return fmt.Errorf("bad byte:%x", buf)
}
return nil
@@ -163,7 +167,7 @@ func (sec *SecretKey) GetByte(ioMode int) []byte {
func (sec *SecretKey) SetByte(buf []byte, ioMode int) error {
// #nosec
err := C.blsSecretKeySetStr(sec.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode))
- if err > 0 {
+ if err != 0 {
return fmt.Errorf("bad byte:%x", buf)
}
return nil
@@ -245,13 +249,21 @@ func GetMasterPublicKey(msk []SecretKey) (mpk []PublicKey) {
}
// Set --
-func (sec *SecretKey) Set(msk []SecretKey, id *ID) {
- C.blsSecretKeySet(sec.getPointer(), msk[0].getPointer(), C.size_t(len(msk)), id.getPointer())
+func (sec *SecretKey) Set(msk []SecretKey, id *ID) error {
+ err := C.blsSecretKeySet(sec.getPointer(), msk[0].getPointer(), C.size_t(len(msk)), id.getPointer())
+ if err != 0 {
+ return fmt.Errorf("SecretKey.Set")
+ }
+ return nil
}
// Recover --
-func (sec *SecretKey) Recover(secVec []SecretKey, idVec []ID) {
- C.blsSecretKeyRecover(sec.getPointer(), secVec[0].getPointer(), idVec[0].getPointer(), C.size_t(len(secVec)))
+func (sec *SecretKey) Recover(secVec []SecretKey, idVec []ID) error {
+ err := C.blsSecretKeyRecover(sec.getPointer(), secVec[0].getPointer(), idVec[0].getPointer(), C.size_t(len(secVec)))
+ if err != 0 {
+ return fmt.Errorf("SecretKey.Recover")
+ }
+ return nil
}
// GetPop --
@@ -287,7 +299,7 @@ func (pub *PublicKey) GetByte(ioMode int) []byte {
func (pub *PublicKey) SetByte(buf []byte, ioMode int) error {
// #nopub
err := C.blsPublicKeySetStr(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode))
- if err > 0 {
+ if err != 0 {
return fmt.Errorf("bad byte:%x", buf)
}
return nil
@@ -328,13 +340,21 @@ func (pub *PublicKey) Add(rhs *PublicKey) {
}
// Set --
-func (pub *PublicKey) Set(mpk []PublicKey, id *ID) {
- C.blsPublicKeySet(pub.getPointer(), mpk[0].getPointer(), C.size_t(len(mpk)), id.getPointer())
+func (pub *PublicKey) Set(mpk []PublicKey, id *ID) error {
+ err := C.blsPublicKeySet(pub.getPointer(), mpk[0].getPointer(), C.size_t(len(mpk)), id.getPointer())
+ if err != 0 {
+ return fmt.Errorf("PublicKey.set")
+ }
+ return nil
}
// Recover --
-func (pub *PublicKey) Recover(pubVec []PublicKey, idVec []ID) {
- C.blsPublicKeyRecover(pub.getPointer(), pubVec[0].getPointer(), idVec[0].getPointer(), C.size_t(len(pubVec)))
+func (pub *PublicKey) Recover(pubVec []PublicKey, idVec []ID) error {
+ err := C.blsPublicKeyRecover(pub.getPointer(), pubVec[0].getPointer(), idVec[0].getPointer(), C.size_t(len(pubVec)))
+ if err != 0 {
+ return fmt.Errorf("PublicKey.Recover")
+ }
+ return nil
}
// Sign --
@@ -363,7 +383,7 @@ func (sign *Sign) GetByte(ioMode int) []byte {
func (sign *Sign) SetByte(buf []byte, ioMode int) error {
// #nosign
err := C.blsSignSetStr(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode))
- if err > 0 {
+ if err != 0 {
return fmt.Errorf("bad byte:%x", buf)
}
return nil
@@ -420,8 +440,12 @@ func (sign *Sign) Add(rhs *Sign) {
}
// Recover --
-func (sign *Sign) Recover(signVec []Sign, idVec []ID) {
- C.blsSignRecover(sign.getPointer(), signVec[0].getPointer(), idVec[0].getPointer(), C.size_t(len(signVec)))
+func (sign *Sign) Recover(signVec []Sign, idVec []ID) error {
+ err := C.blsSignRecover(sign.getPointer(), signVec[0].getPointer(), idVec[0].getPointer(), C.size_t(len(signVec)))
+ if err != 0 {
+ return fmt.Errorf("Sign.Recover")
+ }
+ return nil
}
// Verify --