## 20230321-v1.6.1 gcl/x/tpc移到gcl/tpc gcl/tpc增加SM9协同签名、解密、密钥解封装 ## 20230128-v1.5.0 Add SM4_RNG. ## 20230118-v1.4.7 Add DRNG and SM3_RNG. ## 20221125-v1.4.6 Fix Issue 5 ## 20221125-v1.4.5 Typo&Tidy ## 20221117-v1.4.4 fix Issue 4 ## 20220810-v1.4.1 - Replace all error returns from `gcl` with `errorchain.Error`. - Review package `utils/blockmod`, replace panic with error. - `utils/blockmode.NewCTR`增加返回error. ## 20220809-v1.4.0 - `sm9.Sign`函数签名更改,增加返回错误. - `sm9.KeyEncapsule`函数签名更改,增加rnd输入类型,增加返回错误. - 增加加密函数 ```go func Encrypt(encType EncType, pube *MastEncPublicKey, id, plain []byte, rand io.Reader, optionalIV []byte) (*Cipher, error) ``` - 增加解密函数 ```go func Decrypt(id []byte, c *Cipher, de *UserEncKey) ([]byte, error) ``` 注1:如果是外部产生随机数,如自测用的标准数据,则用`bytes.NewReader(b []byte)`得到一个`io.Reader`. 注2:注1的方法临时或测试用,生产环境应将外部随机源包装为一个`io.Reader`,因为注1的方法读取`len(b)`字节后会报`io.EOF`错误. 注3:除安审,使用`grand.Reader`(e.g. `crypto/Rand.Reader`-Linux上是读取`/dev/(u)random`)已足够。 ## 20211120 - amd64平台,SM4 SIMD汇编实现。 - SM4 ECB 单线程 250MBps ## 20211119 - 移除x509到gssl - 在支持SIMD的amd64平台下,SM4 ECB模式性能翻倍(单线程 > 1.2Gbps) > arm64平台、CTR和GCM模式未完待续 ## 20210901 - 增加x509,sharing/ssss ## 2021-0331 - 增加sm/sm2v1包 - sm/sm2v1是go标准库风格的签名库。与ecdsa调用方式兼容。 > 用于方便替换ecdsa签名 ## 2020-0916 - 增加SM4-GCM模式 ## 20200901 ### SM9 #### Signature 结构 ```go // before type Signature struct { H *big.Int S *G1 } // now type Signature struct { H big.Int S G1 } ``` #### 加密类型 `ENC_TYPE_XXX` change to `oid.xxx`(GM/T 0006修订稿加入SM9) ## 20200701 - add assemble implements on amd64 and arm64 ## 20190318 - version 0.1