emmansun / gmsm

ShangMi (SM) cipher suites for golang (Go语言商用密码软件)

Home Page:https://emmansun.github.io/gmsm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

希望能做更多的封装,让使用更方便一些。减少手工padding、创建cipher对象等重复工作。

MaoJianwei opened this issue · comments

你好,这是个很棒的库!

希望能做更多的封装,让使用更方便一些。
类似tjfoc/gmsm这个库里面的sm4.Sm4Cbc等全局工具函数,一次调用就可以完成加密,减少手工padding、创建cipher对象等重复工作:)

首先感谢你的建议。我从以下几个方面解释一下:

  • 本库的定位和职责,在于常用商用密码算法的实现和优化。譬如sm4 package,它就和Go语言中的aes package类似,实现特定的cipher.Block
  • 通常的对称加解密,无非就是创建cipher.Block,再创建具体的工作模式。有些加密模式需要对明文数据做一些处理。其实也并不复杂。
  • 全局工具函数看似给调用者提供了便利,但也有缺点:调用者失去控制权,不够灵活,无状态、一次性。
  • 如果确需那种全局工具函数,可以自己按需写一个,或者找一下类似的工具包。