diff options
Diffstat (limited to 'go/bls')
-rw-r--r-- | go/bls/bls.go | 52 | ||||
-rw-r--r-- | go/bls/bls_test.go | 30 |
2 files changed, 39 insertions, 43 deletions
diff --git a/go/bls/bls.go b/go/bls/bls.go index f4faf92..a62cddd 100644 --- a/go/bls/bls.go +++ b/go/bls/bls.go @@ -70,11 +70,11 @@ func (id *ID) getPointer() (p *C.blsId) { return (*C.blsId)(unsafe.Pointer(&id.v[0])) } -// String -- -func (id *ID) String() string { +// GetString -- +func (id *ID) GetString(ioMode int) string { buf := make([]byte, 1024) // #nosec - n := C.blsIdGetStr(id.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + n := C.blsIdGetStr(id.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode)) if n == 0 { panic("implementation err. size of buf is small") } @@ -82,10 +82,10 @@ func (id *ID) String() string { } // SetStr -- -func (id *ID) SetStr(s string) error { +func (id *ID) SetStr(s string, ioMode int) error { buf := []byte(s) // #nosec - err := C.blsIdSetStr(id.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + err := C.blsIdSetStr(id.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode)) if err > 0 { return fmt.Errorf("bad string:%s", s) } @@ -113,11 +113,11 @@ func (sec *SecretKey) getPointer() (p *C.blsSecretKey) { return (*C.blsSecretKey)(unsafe.Pointer(&sec.v[0])) } -// String -- -func (sec *SecretKey) String() string { +// GetString -- +func (sec *SecretKey) GetString(ioMode int) string { buf := make([]byte, 1024) // #nosec - n := C.blsSecretKeyGetStr(sec.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + n := C.blsSecretKeyGetStr(sec.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode)) if n == 0 { panic("implementation err. size of buf is small") } @@ -125,10 +125,10 @@ func (sec *SecretKey) String() string { } // SetStr -- The string passed in is a number and can be either hex or decimal -func (sec *SecretKey) SetStr(s string) error { +func (sec *SecretKey) SetStr(s string, ioMode int) error { buf := []byte(s) // #nosec - err := C.blsSecretKeySetStr(sec.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + err := C.blsSecretKeySetStr(sec.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode)) if err > 0 { return fmt.Errorf("bad string:%s", s) } @@ -138,7 +138,7 @@ func (sec *SecretKey) SetStr(s string) error { // SetData -- func (sec *SecretKey) SetData(buf []byte) error { // #nosec - err := C.blsSecretKeySetData(sec.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + err := C.blsSecretKeySetStr(sec.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.BlsIoEcComp) if err > 0 { return fmt.Errorf("bad buf:%s", buf) } @@ -150,7 +150,7 @@ func (sec *SecretKey) GetData() []byte { fpSize := GetOpUnitSize() * 8 buf := make([]byte, fpSize) // #nosec - n := C.blsSecretKeyGetData(sec.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + n := C.blsSecretKeyGetStr(sec.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.BlsIoEcComp) if n != C.size_t(fpSize) { panic("implementation err. size of buf is small") } @@ -230,11 +230,11 @@ func (pub *PublicKey) getPointer() (p *C.blsPublicKey) { return (*C.blsPublicKey)(unsafe.Pointer(&pub.v[0])) } -// String -- -func (pub *PublicKey) String() string { +// GetString -- +func (pub *PublicKey) GetString(ioMode int) string { buf := make([]byte, 1024) // #nosec - n := C.blsPublicKeyGetStr(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + n := C.blsPublicKeyGetStr(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode)) if n == 0 { panic("implementation err. size of buf is small") } @@ -242,10 +242,10 @@ func (pub *PublicKey) String() string { } // SetStr -- -func (pub *PublicKey) SetStr(s string) error { +func (pub *PublicKey) SetStr(s string, ioMode int) error { buf := []byte(s) // #nosec - err := C.blsPublicKeySetStr(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + err := C.blsPublicKeySetStr(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode)) if err > 0 { return fmt.Errorf("bad string:%s", s) } @@ -255,7 +255,7 @@ func (pub *PublicKey) SetStr(s string) error { // SetData -- func (pub *PublicKey) SetData(buf []byte) error { // #nosec - err := C.blsPublicKeySetData(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + err := C.blsPublicKeySetStr(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.BlsIoEcComp) if err > 0 { return fmt.Errorf("bad buf:%s", buf) } @@ -267,7 +267,7 @@ func (pub *PublicKey) GetData() []byte { fpSize := GetOpUnitSize() * 8 buf := make([]byte, fpSize*2) // #nosec - n := C.blsPublicKeyGetData(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + n := C.blsPublicKeyGetStr(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.BlsIoEcComp) if n != C.size_t(fpSize*2) { panic("implementation err. size of buf is small") } @@ -305,11 +305,11 @@ func (sign *Sign) getPointer() (p *C.blsSign) { return (*C.blsSign)(unsafe.Pointer(&sign.v[0])) } -// String -- -func (sign *Sign) String() string { +// GetString -- +func (sign *Sign) GetString(ioMode int) string { buf := make([]byte, 1024) // #nosec - n := C.blsSignGetStr(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + n := C.blsSignGetStr(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode)) if n == 0 { panic("implementation err. size of buf is small") } @@ -317,10 +317,10 @@ func (sign *Sign) String() string { } // SetStr -- -func (sign *Sign) SetStr(s string) error { +func (sign *Sign) SetStr(s string, ioMode int) error { buf := []byte(s) // #nosec - err := C.blsSignSetStr(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + err := C.blsSignSetStr(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.int(ioMode)) if err > 0 { return fmt.Errorf("bad string:%s", s) } @@ -330,7 +330,7 @@ func (sign *Sign) SetStr(s string) error { // SetData -- func (sign *Sign) SetData(buf []byte) error { // #nosec - err := C.blsSignSetData(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + err := C.blsSignSetStr(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.BlsIoEcComp) if err > 0 { return fmt.Errorf("bad buf:%s", buf) } @@ -342,7 +342,7 @@ func (sign *Sign) GetData() []byte { fpSize := GetOpUnitSize() * 8 buf := make([]byte, fpSize) // #nosec - n := C.blsSignGetData(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) + n := C.blsSignGetStr(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)), C.BlsIoEcComp) if n != C.size_t(fpSize) { panic("implementation err. size of buf is small") } diff --git a/go/bls/bls_test.go b/go/bls/bls_test.go index 3a62e93..1a325d1 100644 --- a/go/bls/bls_test.go +++ b/go/bls/bls_test.go @@ -15,7 +15,7 @@ func testPre(t *testing.T) { t.Log("id :", id) var id2 ID - err := id2.SetStr(id.String()) + err := id2.SetStr(id.GetString(10), 10) if err != nil { t.Fatal(err) } @@ -46,7 +46,7 @@ func testPre(t *testing.T) { sec := make([]SecretKey, 3) for i := 0; i < len(sec); i++ { sec[i].Init() - t.Log("sec=", sec[i].String()) + t.Log("sec=", sec[i].GetString(16)) } } } @@ -60,17 +60,13 @@ func testStringConversion(t *testing.T) { } else { s = "40804142231733909759579603404752749028378864165570215949" } - err := sec.SetStr(s) + err := sec.SetStr(s, 10) if err != nil { t.Fatal(err) } - t.Log("String: ", s, sec.String()) - s = "401035055535747319451436327113007154621327258807739504261475863403006987855" - err = sec.SetStr(s) - if err != nil { - t.Fatal(err) + if s != sec.GetString(10) { + t.Error("not equal") } - t.Log("String: ", s, sec.String()) } func testRecoverSecretKey(t *testing.T) { @@ -92,8 +88,8 @@ func testRecoverSecretKey(t *testing.T) { // recover sec2 from secVec and idVec var sec2 SecretKey sec2.Recover(secVec, idVec) - if sec.String() != sec2.String() { - t.Errorf("Mismatch in recovered secret key:\n %s\n %s.", sec.String(), sec2.String()) + if sec.GetString(16) != sec2.GetString(16) { + t.Errorf("Mismatch in recovered secret key:\n %s\n %s.", sec.GetString(16), sec2.GetString(16)) } } @@ -123,14 +119,14 @@ func testSign(t *testing.T) { for i := 0; i < n; i++ { idVec[i].Set([]uint64{idTbl[i], 0, 0, 0, 0, 0}[0:unitN]) - t.Logf("idVec[%d]=%s\n", i, idVec[i].String()) + t.Logf("idVec[%d]=%s\n", i, idVec[i].GetString(16)) secVec[i].Set(msk, &idVec[i]) pubVec[i].Set(mpk, &idVec[i]) - t.Logf("pubVec[%d]=%s\n", i, pubVec[i].String()) + t.Logf("pubVec[%d]=%s\n", i, pubVec[i].GetString(16)) - if pubVec[i].String() != secVec[i].GetPublicKey().String() { + if pubVec[i].GetString(16) != secVec[i].GetPublicKey().GetString(16) { t.Error("Pubkey derivation does not match") } @@ -141,17 +137,17 @@ func testSign(t *testing.T) { } var sec1 SecretKey sec1.Recover(secVec, idVec) - if sec0.String() != sec1.String() { + if sec0.GetString(16) != sec1.GetString(16) { t.Error("Mismatch in recovered seckey.") } var pub1 PublicKey pub1.Recover(pubVec, idVec) - if pub0.String() != pub1.String() { + if pub0.GetString(16) != pub1.GetString(16) { t.Error("Mismatch in recovered pubkey.") } var s1 Sign s1.Recover(signVec, idVec) - if s0.String() != s1.String() { + if s0.GetString(16) != s1.GetString(16) { t.Error("Mismatch in recovered signature.") } } |