init: v1.0.0
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package sm2a
|
||||
|
||||
import (
|
||||
"math/big"
|
||||
|
||||
"xdx.jelly/xgcl/gmath"
|
||||
"xdx.jelly/xgcl/sm/sm2"
|
||||
)
|
||||
|
||||
// ServerDecrypt 服务端协同计算,返回[d_s]·C1给客户端
|
||||
func ServerDecrypt(in []byte, ds *sm2.PrivateKey) ([]byte, error) {
|
||||
x := new(big.Int)
|
||||
y := new(big.Int)
|
||||
x.SetBytes(in[:sm2.ByteSize()])
|
||||
y.SetBytes(in[sm2.ByteSize() : 2*sm2.ByteSize()])
|
||||
|
||||
x, y = sm2.Curve256.ScalarMult(x, y, ds.D.Bytes())
|
||||
out := make([]byte, 0, 2*sm2.ByteSize())
|
||||
out = append(out, gmath.BigIntToNByte(x, sm2.ByteSize())...)
|
||||
out = append(out, gmath.BigIntToNByte(y, sm2.ByteSize())...)
|
||||
// 中间变量内存置0
|
||||
gmath.ClearBigInt(x)
|
||||
gmath.ClearBigInt(y)
|
||||
return out, nil
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user