@@ -29,8 +29,8 @@ func MultiVerify(sigs []Sign, pubs []PublicKey, concatenatedMsg []byte) bool {
2929
3030 var e C.mclBnGT
3131 var aggSig Sign
32- msg := uintptr ( unsafe .Pointer (& concatenatedMsg [0 ]) )
33- rp := uintptr ( unsafe .Pointer (& randVec [0 ]) )
32+ msg := unsafe .Pointer (& concatenatedMsg [0 ])
33+ rand := unsafe .Pointer (& randVec [0 ])
3434
3535 maxThreadN := 32
3636 if threadN > maxThreadN {
@@ -44,8 +44,8 @@ func MultiVerify(sigs []Sign, pubs []PublicKey, concatenatedMsg []byte) bool {
4444 q := blockN / threadN
4545 r := blockN % threadN
4646 cs := make (chan int , threadN )
47- sub := func (i int , sigs []Sign , pubs []PublicKey , msg uintptr , rp uintptr , m int ) {
48- C .blsMultiVerifySub (& et [i ], & aggSigt [i ].v , & sigs [0 ].v , & pubs [0 ].v , (* C .char )(unsafe . Pointer ( msg )) , C .mclSize (msgSize ), (* C .char )(unsafe . Pointer ( rp ) ), C .mclSize (randSize ), C .mclSize (m ))
47+ sub := func (i int , sigs []Sign , pubs []PublicKey , msg , rand unsafe. Pointer , m int ) {
48+ C .blsMultiVerifySub (& et [i ], & aggSigt [i ].v , & sigs [0 ].v , & pubs [0 ].v , (* C .char )(msg ), C .mclSize (msgSize ), (* C .char )(rand ), C .mclSize (randSize ), C .mclSize (m ))
4949 cs <- 1
5050 }
5151 for i := 0 ; i < threadN ; i ++ {
@@ -62,12 +62,12 @@ func MultiVerify(sigs []Sign, pubs []PublicKey, concatenatedMsg []byte) bool {
6262 if i == threadN - 1 {
6363 m = n // remain all
6464 }
65- // C.blsMultiVerifySub(&et[i], &aggSigt[i].v, &sigs[0].v, &pubs[0].v, (*C.char)(unsafe.Pointer( msg)) , C.mclSize(msgSize), (*C.char)(unsafe.Pointer(rp) ), C.mclSize(randSize), C.mclSize(m))
66- go sub (i , sigs , pubs , msg , rp , m )
65+ // C.blsMultiVerifySub(&et[i], &aggSigt[i].v, &sigs[0].v, &pubs[0].v, (*C.char)(msg), C.mclSize(msgSize), (*C.char)(rand ), C.mclSize(randSize), C.mclSize(m))
66+ go sub (i , sigs , pubs , msg , rand , m )
6767 sigs = sigs [m :]
6868 pubs = pubs [m :]
69- msg += uintptr ( msgSize * m )
70- rp += uintptr ( randSize * m )
69+ msg = unsafe . Add ( msg , msgSize * m )
70+ rand = unsafe . Add ( rand , randSize * m )
7171 n -= m
7272 }
7373 for i := 0 ; i < threadN ; i ++ {
@@ -80,7 +80,7 @@ func MultiVerify(sigs []Sign, pubs []PublicKey, concatenatedMsg []byte) bool {
8080 aggSig .Add (& aggSigt [i ])
8181 }
8282 } else {
83- C .blsMultiVerifySub (& e , & aggSig .v , & sigs [0 ].v , & pubs [0 ].v , (* C .char )(unsafe . Pointer ( msg )) , C .mclSize (msgSize ), (* C .char )(unsafe . Pointer ( rp ) ), C .mclSize (randSize ), C .mclSize (n ))
83+ C .blsMultiVerifySub (& e , & aggSig .v , & sigs [0 ].v , & pubs [0 ].v , (* C .char )(msg ), C .mclSize (msgSize ), (* C .char )(rand ), C .mclSize (randSize ), C .mclSize (n ))
8484 }
8585 return C .blsMultiVerifyFinal (& e , & aggSig .v ) == 1
8686}
0 commit comments