Releases: emmansun/gmsm
Releases · emmansun/gmsm
v0.21.5-beta
For #174 test only
v0.21.4
v0.21.3
v0.21.2
v0.21.1
Notable Changes:
- sm3: do not use RORX in avx implementation. #157 RORX指令属于BMI2指令集,上个release使用了AVX+BMI2组合,很多仅支持AVX的老机器性能没有得到提升。
- sm3: amd64 SSE implementation. #165 虽然不支持AVX的AMD64 架构的CPU应该不多了,还是支持一下吧。
- sm3: message schedule optimization. #164 尽量减少使用指令,使用和sha256实现不一样的思路,具体请参考SM3实现及优化
- sm3: message compression optimization. #163 #160 压缩函数,尽量减少指令。
- sm3: reduce stack memory usage for amd64 avx & arm64 neon. #162
Full Changelog: v0.21.0...v0.21.1
v0.21.0
Notable Changes:
- sm3: some refactoring and optimizations:align format, use VPSHUFB for byte level rotate left shift, reduce MOVL, add more test vectors
- sm3: amd64 AVX simd message scheduling. #157 使用AVX指令进行消息扩展,AVX和AVX2测试性能差距不大
- sm3: arm64 neon simd message scheduling. #159 使用NEON指令进行消息扩展,无性能测试环境
- internal/sm2ec: use register BP in square methods for plugin build. plugin: sm2 sm9 use BP carefully
- sm9/bn256: use register BP in gfp square methods for plugin build. plugin: sm2 sm9 use BP carefully
- smx509: add example test cases for SM2 private key parsing, #155
- build(deps): bump golang.org/x/crypto from 0.12.0 to 0.13.0.
v0.20.2
v0.20.1
Notable Changes:
- build: support plugin flag for amd64. 支持plugin编译flag,#154,相对purego 编译flag 而言,保留了不使用R15的amd64 汇编实现。相对于arm64,amd64的可用通用寄存器较少,如果不使用R15,会有更多的内存、寄存器交互,汇编代码会更复杂,项目的实现和维护成本也会大量增加。可以考虑基于rpc的插件实现机制,譬如Go Plugin System over RPC
- zuc: add comments. 增加代码说明。
- upgrade golang.org/x/sys from 0.11.0 to 0.12.0.
v0.20.0
v0.19.3
Notable Changes:
- padding: ISO/IEC 9797 method 2. 这也是GB/T 17964-2021中列出的填充方式2。
- sm4: improve performance, especially for GCM, ECB, CBC decrypt.尽量使用SIMD寄存器,提高并行吞吐量,ECB, CBC解密的汇编实现。
- internal/bigmod: fix duplicated function name issue. 修复和golang SDK(1.21+)中全局汇编函数名重复问题。