diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2017-01-20 12:35:08 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2017-01-20 12:35:08 +0800 |
commit | ca93275c32037b83577f7e52bc63714006228d21 (patch) | |
tree | 0fe09f00182a975480b20b59b5d50e507d5f5263 | |
parent | 3f670fde36df1b7fa38b8a5797db7e61f492497d (diff) | |
download | dexon-bls-ca93275c32037b83577f7e52bc63714006228d21.tar dexon-bls-ca93275c32037b83577f7e52bc63714006228d21.tar.gz dexon-bls-ca93275c32037b83577f7e52bc63714006228d21.tar.bz2 dexon-bls-ca93275c32037b83577f7e52bc63714006228d21.tar.lz dexon-bls-ca93275c32037b83577f7e52bc63714006228d21.tar.xz dexon-bls-ca93275c32037b83577f7e52bc63714006228d21.tar.zst dexon-bls-ca93275c32037b83577f7e52bc63714006228d21.zip |
break go api
-rw-r--r-- | go/bls/bls.go | 77 | ||||
-rw-r--r-- | go/main.go | 54 |
2 files changed, 42 insertions, 89 deletions
diff --git a/go/bls/bls.go b/go/bls/bls.go index 187b89a..68c5c7a 100644 --- a/go/bls/bls.go +++ b/go/bls/bls.go @@ -21,16 +21,6 @@ func (id *Id) getPointer() (p *C.blsId) { return (*C.blsId)(unsafe.Pointer(&id.v[0])) } -func NewId() *Id { - return new(Id) -} - -func (id *Id) Clone() (r *Id) { - r = new(Id) - *r = *id - return r -} - func (id *Id) String() string { buf := make([]byte, 1024) n := C.blsIdGetStr(id.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) @@ -65,16 +55,6 @@ func (sec *SecretKey) getPointer() (p *C.blsSecretKey) { return (*C.blsSecretKey)(unsafe.Pointer(&sec.v[0])) } -func NewSecretKey() *SecretKey { - return new(SecretKey) -} - -func (sec *SecretKey) Clone() (r *SecretKey) { - r = new(SecretKey) - *r = *sec - return r -} - func (sec *SecretKey) String() string { buf := make([]byte, 1024) n := C.blsSecretKeyGetStr(sec.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) @@ -109,26 +89,25 @@ func (sec *SecretKey) Add(rhs *SecretKey) { C.blsSecretKeyAdd(sec.getPointer(), rhs.getPointer()) } -func (sec *SecretKey) GetMasterSecretKey(k int) (msk []*SecretKey) { - msk = make([]*SecretKey, k) - msk[0] = sec.Clone() +func (sec *SecretKey) GetMasterSecretKey(k int) (msk []SecretKey) { + msk = make([]SecretKey, k) + msk[0] = *sec for i := 1; i < k; i++ { - msk[i] = new(SecretKey) msk[i].Init() } return msk } -func GetMasterPublicKey(msk []*SecretKey) (mpk []*PublicKey) { +func GetMasterPublicKey(msk []SecretKey) (mpk []PublicKey) { n := len(msk) - mpk = make([]*PublicKey, n) + mpk = make([]PublicKey, n) for i := 0; i < n; i++ { - mpk[i] = msk[i].GetPublicKey() + mpk[i] = *msk[i].GetPublicKey() } return mpk } -func makeSecretKeyPointerArray(v []*SecretKey) (pv []*C.blsSecretKey) { +func makeSecretKeyPointerArray(v []SecretKey) (pv []*C.blsSecretKey) { n := len(v) pv = make([]*C.blsSecretKey, n) for i := 0; i < n; i++ { @@ -136,7 +115,7 @@ func makeSecretKeyPointerArray(v []*SecretKey) (pv []*C.blsSecretKey) { } return pv } -func makePublicKeyPointerArray(v []*PublicKey) (pv []*C.blsPublicKey) { +func makePublicKeyPointerArray(v []PublicKey) (pv []*C.blsPublicKey) { n := len(v) pv = make([]*C.blsPublicKey, n) for i := 0; i < n; i++ { @@ -144,7 +123,7 @@ func makePublicKeyPointerArray(v []*PublicKey) (pv []*C.blsPublicKey) { } return pv } -func makeSignPointerArray(v []*Sign) (pv []*C.blsSign) { +func makeSignPointerArray(v []Sign) (pv []*C.blsSign) { n := len(v) pv = make([]*C.blsSign, n) for i := 0; i < n; i++ { @@ -152,7 +131,7 @@ func makeSignPointerArray(v []*Sign) (pv []*C.blsSign) { } return pv } -func makeIdPointerArray(v []*Id) (pv []*C.blsId) { +func makeIdPointerArray(v []Id) (pv []*C.blsId) { n := len(v) pv = make([]*C.blsId, n) for i := 0; i < n; i++ { @@ -160,19 +139,19 @@ func makeIdPointerArray(v []*Id) (pv []*C.blsId) { } return pv } -func (sec *SecretKey) Set(msk []*SecretKey, id *Id) { +func (sec *SecretKey) Set(msk []SecretKey, id *Id) { v := makeSecretKeyPointerArray(msk) C.blsSecretKeySet(sec.getPointer(), (**C.blsSecretKey)(unsafe.Pointer(&v[0])), C.size_t(len(msk)), id.getPointer()) } -func (sec *SecretKey) Recover(secVec []*SecretKey, idVec []*Id) { +func (sec *SecretKey) Recover(secVec []SecretKey, idVec []Id) { sv := makeSecretKeyPointerArray(secVec) iv := makeIdPointerArray(idVec) C.blsSecretKeyRecover(sec.getPointer(), (**C.blsSecretKey)(unsafe.Pointer(&sv[0])), (**C.blsId)(unsafe.Pointer(&iv[0])), C.size_t(len(secVec))) } func (sec *SecretKey) GetPop() (sign *Sign) { - sign = NewSign() + sign = new(Sign) C.blsSecretKeyGetPop(sec.getPointer(), sign.getPointer()) return sign } @@ -185,16 +164,6 @@ func (pub *PublicKey) getPointer() (p *C.blsPublicKey) { return (*C.blsPublicKey)(unsafe.Pointer(&pub.v[0])) } -func NewPublicKey() *PublicKey { - return new(PublicKey) -} - -func (pub *PublicKey) Clone() (r *PublicKey) { - r = new(PublicKey) - *r = *pub - return r -} - func (pub *PublicKey) String() string { buf := make([]byte, 1024) n := C.blsPublicKeyGetStr(pub.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) @@ -216,12 +185,12 @@ func (pub *PublicKey) SetStr(s string) error { func (pub *PublicKey) Add(rhs *PublicKey) { C.blsPublicKeyAdd(pub.getPointer(), rhs.getPointer()) } -func (pub *PublicKey) Set(msk []*PublicKey, id *Id) { +func (pub *PublicKey) Set(msk []PublicKey, id *Id) { v := makePublicKeyPointerArray(msk) C.blsPublicKeySet(pub.getPointer(), (**C.blsPublicKey)(unsafe.Pointer(&v[0])), C.size_t(len(msk)), id.getPointer()) } -func (pub *PublicKey) Recover(pubVec []*PublicKey, idVec []*Id) { +func (pub *PublicKey) Recover(pubVec []PublicKey, idVec []Id) { sv := makePublicKeyPointerArray(pubVec) iv := makeIdPointerArray(idVec) C.blsPublicKeyRecover(pub.getPointer(), (**C.blsPublicKey)(unsafe.Pointer(&sv[0])), (**C.blsId)(unsafe.Pointer(&iv[0])), C.size_t(len(pubVec))) @@ -235,16 +204,6 @@ func (sign *Sign) getPointer() (p *C.blsSign) { return (*C.blsSign)(unsafe.Pointer(&sign.v[0])) } -func NewSign() *Sign { - return new(Sign) -} - -func (sign *Sign) Clone() (r *Sign) { - r = new(Sign) - *r = *sign - return r -} - func (sign *Sign) String() string { buf := make([]byte, 1024) n := C.blsSignGetStr(sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) @@ -264,13 +223,13 @@ func (sign *Sign) SetStr(s string) error { } func (sec *SecretKey) GetPublicKey() (pub *PublicKey) { - pub = NewPublicKey() + pub = new(PublicKey) C.blsSecretKeyGetPublicKey(sec.getPointer(), pub.getPointer()) return pub } func (sec *SecretKey) Sign(m string) (sign *Sign) { - sign = NewSign() + sign = new(Sign) buf := []byte(m) C.blsSecretKeySign(sec.getPointer(), sign.getPointer(), (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))) return sign @@ -279,7 +238,7 @@ func (sec *SecretKey) Sign(m string) (sign *Sign) { func (sign *Sign) Add(rhs *Sign) { C.blsSignAdd(sign.getPointer(), rhs.getPointer()) } -func (sign *Sign) Recover(signVec []*Sign, idVec []*Id) { +func (sign *Sign) Recover(signVec []Sign, idVec []Id) { sv := makeSignPointerArray(signVec) iv := makeIdPointerArray(idVec) C.blsSignRecover(sign.getPointer(), (**C.blsSign)(unsafe.Pointer(&sv[0])), (**C.blsId)(unsafe.Pointer(&iv[0])), C.size_t(len(signVec))) @@ -13,7 +13,7 @@ func verifyTrue(b bool) { func testRecoverSecretKey() { fmt.Println("testRecoverSecretKey") k := 3000 - sec := bls.NewSecretKey() + var sec bls.SecretKey sec.Init() fmt.Println("sec =", sec) @@ -21,16 +21,14 @@ func testRecoverSecretKey() { msk := sec.GetMasterSecretKey(k) n := k - secVec := make([]*bls.SecretKey, n) - idVec := make([]*bls.Id, n) + secVec := make([]bls.SecretKey, n) + idVec := make([]bls.Id, n) for i := 0; i < n; i++ { - idVec[i] = bls.NewId() idVec[i].Set([]uint64{1, 2, 3, uint64(i)}) - secVec[i] = bls.NewSecretKey() - secVec[i].Set(msk, idVec[i]) + secVec[i].Set(msk, &idVec[i]) } // recover sec2 from secVec and idVec - sec2 := bls.NewSecretKey() + var sec2 bls.SecretKey sec2.Recover(secVec, idVec) fmt.Println("sec2=", sec2) } @@ -39,7 +37,7 @@ func testSign() { m := "testSign" fmt.Println(m) - sec0 := bls.NewSecretKey() + var sec0 bls.SecretKey sec0.Init() pub0 := sec0.GetPublicKey() s0 := sec0.Sign(m) @@ -52,43 +50,40 @@ func testSign() { idTbl := []uint64{3, 5, 193, 22, 15} n := len(idTbl) - secVec := make([]*bls.SecretKey, n) - pubVec := make([]*bls.PublicKey, n) - signVec := make([]*bls.Sign, n) - idVec := make([]*bls.Id, n) + secVec := make([]bls.SecretKey, n) + pubVec := make([]bls.PublicKey, n) + signVec := make([]bls.Sign, n) + idVec := make([]bls.Id, n) for i := 0; i < n; i++ { - idVec[i] = bls.NewId() idVec[i].Set([]uint64{idTbl[i], 0, 0, 0}) fmt.Printf("idVec[%d]=%s\n", i, idVec[i].String()) - secVec[i] = bls.NewSecretKey() - secVec[i].Set(msk, idVec[i]) + secVec[i].Set(msk, &idVec[i]) - pubVec[i] = bls.NewPublicKey() - pubVec[i].Set(mpk, idVec[i]) + pubVec[i].Set(mpk, &idVec[i]) fmt.Printf("pubVec[%d]=%s\n", i, pubVec[i].String()) verifyTrue(pubVec[i].String() == secVec[i].GetPublicKey().String()) - signVec[i] = secVec[i].Sign(m) - verifyTrue(signVec[i].Verify(pubVec[i], m)) + signVec[i] = *secVec[i].Sign(m) + verifyTrue(signVec[i].Verify(&pubVec[i], m)) } - sec1 := bls.NewSecretKey() + var sec1 bls.SecretKey sec1.Recover(secVec, idVec) verifyTrue(sec0.String() == sec1.String()) - pub1 := bls.NewPublicKey() + var pub1 bls.PublicKey pub1.Recover(pubVec, idVec) verifyTrue(pub0.String() == pub1.String()) - s1 := bls.NewSign() + var s1 bls.Sign s1.Recover(signVec, idVec) verifyTrue(s0.String() == s1.String()) } func testAdd() { fmt.Println("testAdd") - sec1 := bls.NewSecretKey() - sec2 := bls.NewSecretKey() + var sec1 bls.SecretKey + var sec2 bls.SecretKey sec1.Init() sec2.Init() @@ -108,7 +103,7 @@ func testAdd() { func testPop() { fmt.Println("testPop") - sec := bls.NewSecretKey() + var sec bls.SecretKey sec.Init() pop := sec.GetPop() verifyTrue(pop.VerifyPop(sec.GetPublicKey())) @@ -119,22 +114,22 @@ func main() { fmt.Println("init") bls.Init() { - id := bls.NewId() + var id bls.Id id.Set([]uint64{4, 3, 2, 1}) fmt.Println("id :", id) - id2 := bls.NewId() + var id2 bls.Id id2.SetStr(id.String()) fmt.Println("id2:", id2) } { - sec := bls.NewSecretKey() + var sec bls.SecretKey sec.SetArray([]uint64{1, 2, 3, 4}) fmt.Println("sec=", sec) } fmt.Println("create secret key") m := "this is a bls sample for go" - sec := bls.NewSecretKey() + var sec bls.SecretKey sec.Init() fmt.Println("sec:", sec) fmt.Println("create public key") @@ -148,7 +143,6 @@ func main() { { sec := make([]bls.SecretKey, 3) for i := 0; i < len(sec); i++ { - sec[i] = *bls.NewSecretKey() sec[i].Init() fmt.Println("sec=", sec[i].String()) } |