SM2加密
SM2非对称加密的结果由C1,C2,C3三部分组成。其中C1是生成随机数的计算出的椭圆曲线点,C2是密文数据,C3是SM3的摘要值。最开始的国密标准的结果是按C1C2C3顺序的,新标准的是按C1C3C2顺序存放的,因此我这边在做SM2加密时新增加了加密结果的顺序参数,以配置兼容之前的SM2算法加密。
SM3算法
SM2国密算法有点不一样的是,同时使用了SM3摘要算法验证,即SM2加密结果中的C3为SM3摘要。这次也使用上次JS签名进行SM3摘要计算方法,修正了JS移位运算转换为Byte字节问题,对于溢出部分截取后8位处理。