gmsm/internal/sm9/bn256
2025-03-21 10:04:35 +08:00
..
bn_pair_b6_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
bn_pair_b6.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
bn_pair_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
bn_pair.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
constants.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
curve.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
elliptic.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
g1_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
g1.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
g2_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
g2.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
generate.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp2_g1_amd64.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp2_g1_arm64.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp2_g1_decl.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp2_g1_generic.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp2_sqrt.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp2_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp2.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp4_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp4.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp6_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp6.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp12_b6_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp12_b6.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp12_exp_u.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp12_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp12.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp12b6_exp_u.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp_amd64.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp_arm64.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp_cmn_amd64.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp_decl.go internal/cpu: move to internal/deps/cpu #310 2025-03-21 10:04:35 +08:00
gfp_generic.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp_invert_sqrt.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp_macros_amd64.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp_plugin_amd64.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp_ppc64x.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gfp.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gt_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
gt.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
LICENSE sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
params_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
params.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
README.md sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
select_amd64.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
select_arm64.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
select_decl.go internal/cpu: move to internal/deps/cpu #310 2025-03-21 10:04:35 +08:00
select_generic.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
select_ppc64x.s sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
select_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
twist_test.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00
twist.go sm9: refactoring, do not expose bn256 types to caller #314 2025-03-13 13:46:14 +08:00

This part codes mainly refer two projects:

  1. bn256, 主要是基域运算。这个项目的主要问题在于测试太少。后续进行了大量改进增加测试、减少乘法、常量时间运行的ScalarMult实现、优化的Invert/Sqrt实现、直至替换基础域计算实现。
  2. gmssl sm9主要是2-4-12塔式扩域现在实现了1-2-4-12扩域以及1-2-6-12扩域以及相互转换以及r-ate等。这个项目的主要问题在于性能没有怎么优化。基于性能考虑后续r-rate还是参考了bn256的op-ate并结合sm9的特殊性做了适应性改造。
  3. SM9 precompute pairing per master public key level
  4. G1, G2曲线倍点运算预计算。
  5. 更加高效的基础域gfP汇编方法实现。
  6. 分圆子群上的特殊平方运算实现。
  7. Miller运算中line add/double运算不返回新建对象。
  8. Marshal/Unmarshalselectset的asm实现。