Commit b8fd70df by dliangx

去掉变量

parent c92d6aa7
package model package model
import ( import (
"crypto"
"crypto/rand" "crypto/rand"
"encoding/base64" "encoding/base64"
"encoding/hex" "encoding/hex"
...@@ -61,6 +62,7 @@ func EncryptAndSign[T any](resp HttpBodyResp[T]) (CryptHttpBodyResp, error) { ...@@ -61,6 +62,7 @@ func EncryptAndSign[T any](resp HttpBodyResp[T]) (CryptHttpBodyResp, error) {
log.Println(err.Error()) log.Println(err.Error())
return cresp, err return cresp, err
} }
ciphertext, err := sm2.Encrypt(publicKey, body, rand.Reader, sm2.C1C2C3) ciphertext, err := sm2.Encrypt(publicKey, body, rand.Reader, sm2.C1C2C3)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
...@@ -69,23 +71,14 @@ func EncryptAndSign[T any](resp HttpBodyResp[T]) (CryptHttpBodyResp, error) { ...@@ -69,23 +71,14 @@ func EncryptAndSign[T any](resp HttpBodyResp[T]) (CryptHttpBodyResp, error) {
cresp.Response.Head = resp.Head cresp.Response.Head = resp.Head
cresp.Response.Response = base64.RawStdEncoding.EncodeToString(ciphertext) cresp.Response.Response = base64.RawStdEncoding.EncodeToString(ciphertext)
jsonResp, err := json.Marshal(resp) jsonResp, err := json.Marshal(cresp.Response)
if err != nil {
log.Println(err)
return cresp, err
}
uid := []byte("tk")
r, s, err := sm2.Sm2Sign(privateKeyBytes, jsonResp, uid, rand.Reader)
if err != nil {
log.Println(err)
return cresp, err
}
signature, err := sm2.SignDigitToSignData(r, s)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return cresp, err return cresp, err
} }
signature, err := privateKeyBytes.Sign(rand.Reader, jsonResp, crypto.BLAKE2b_256)
cresp.Signature = base64.RawStdEncoding.EncodeToString(signature) cresp.Signature = base64.RawStdEncoding.EncodeToString(signature)
return cresp, err return cresp, err
} }
...@@ -106,13 +99,13 @@ func VerifyAndDecrypt[T any](creq CryptHttpBodyReq) (HttpBodyReq[T], error) { ...@@ -106,13 +99,13 @@ func VerifyAndDecrypt[T any](creq CryptHttpBodyReq) (HttpBodyReq[T], error) {
log.Println(err) log.Println(err)
return req, err return req, err
} }
r, s, err := sm2.SignDataToSignDigit(signature)
jsonReq, err := json.Marshal(creq.Request)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return req, err return req, err
} }
uid := []byte("tk") if publicKey.Verify(jsonReq, signature) {
if sm2.Sm2Verify(publicKey, signature, uid, r, s) {
body, err := base64.RawStdEncoding.DecodeString(creq.Request.Request) body, err := base64.RawStdEncoding.DecodeString(creq.Request.Request)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment