@@ -195,6 +195,7 @@ func (sm2 *Sm2Key) Decrypt(in []byte) ([]byte, error) {
195195
196196type Sm2Signature struct {
197197 sm2_sign_ctx C.SM2_SIGN_CTX
198+ sm2_verify_ctx C.SM2_VERIFY_CTX
198199 sign bool
199200}
200201
@@ -216,7 +217,7 @@ func NewSm2Signature(sm2 *Sm2Key, id string, sign bool) (*Sm2Signature, error) {
216217 return nil , errors .New ("Libgmssl inner error" )
217218 }
218219 } else {
219- if C .sm2_verify_init (& ret .sm2_sign_ctx , & sm2 .sm2_key , id_str , C .strlen (id_str )) != 1 {
220+ if C .sm2_verify_init (& ret .sm2_verify_ctx , & sm2 .sm2_key , id_str , C .strlen (id_str )) != 1 {
220221 return nil , errors .New ("Libgmssl inner error" )
221222 }
222223 }
@@ -234,7 +235,7 @@ func (sig *Sm2Signature) Update(data []byte) error {
234235 return errors .New ("Libgmssl inner error" )
235236 }
236237 } else {
237- if C .sm2_verify_update (& sig .sm2_sign_ctx , (* C .uchar )(unsafe .Pointer (& data [0 ])), C .size_t (len (data ))) != 1 {
238+ if C .sm2_verify_update (& sig .sm2_verify_ctx , (* C .uchar )(unsafe .Pointer (& data [0 ])), C .size_t (len (data ))) != 1 {
238239 return errors .New ("Libgmssl inner error" )
239240 }
240241 }
@@ -257,11 +258,10 @@ func (sig *Sm2Signature) Verify(signature []byte) bool {
257258 if sig .sign != false {
258259 return false
259260 }
260- if C .sm2_verify_finish (& sig .sm2_sign_ctx , (* C .uchar )(unsafe .Pointer (& signature [0 ])), C .size_t (len (signature ))) != 1 {
261+ if C .sm2_verify_finish (& sig .sm2_verify_ctx , (* C .uchar )(unsafe .Pointer (& signature [0 ])), C .size_t (len (signature ))) != 1 {
261262 return false
262263 }
263264 return true
264265}
265266
266267
267-
0 commit comments