aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--go/bls/bls.go77
-rw-r--r--go/main.go54
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)))
diff --git a/go/main.go b/go/main.go
index 6c51b06..6cd5cb0 100644
--- a/go/main.go
+++ b/go/main.go
@@ -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())
}