aboutsummaryrefslogtreecommitdiffstats
path: root/go/bls
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2017-05-05 07:07:47 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2017-05-05 07:07:47 +0800
commitb85df3bdcea93108a0c1c12e9471ba3e700329f6 (patch)
treec2c70171360cfd345e982494361edfe589bd18ab /go/bls
parente75cbb14166d3b418d84cd5924d8445c96e849a8 (diff)
downloaddexon-bls-b85df3bdcea93108a0c1c12e9471ba3e700329f6.tar
dexon-bls-b85df3bdcea93108a0c1c12e9471ba3e700329f6.tar.gz
dexon-bls-b85df3bdcea93108a0c1c12e9471ba3e700329f6.tar.bz2
dexon-bls-b85df3bdcea93108a0c1c12e9471ba3e700329f6.tar.lz
dexon-bls-b85df3bdcea93108a0c1c12e9471ba3e700329f6.tar.xz
dexon-bls-b85df3bdcea93108a0c1c12e9471ba3e700329f6.tar.zst
dexon-bls-b85df3bdcea93108a0c1c12e9471ba3e700329f6.zip
change api of GetStr/SetStr
Diffstat (limited to 'go/bls')
-rw-r--r--go/bls/bls.go52
-rw-r--r--go/bls/bls_test.go30
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.")
}
}