duanhongyi / gmssl

a python crypto for sm2/sm3/sm4
MIT License
473 stars 139 forks source link

func.py中padding函数中的bug #53

Open xiaozongziya opened 2 years ago

xiaozongziya commented 2 years ago

func.py的12行,padding函数存在问题。如果data的长度正好是16字节的整数倍,利用该函数执行完的结果是又填充了16字节,这不太符合实际情况,应该增加判断。

stormflag commented 1 year ago

我也发现了,我改成下面的这个方式了

padding = lambda data, block=16: data + [(16 - len(data) % block)for _ in range(16 - len(data) % block)]

原方法有误,会导致16字节倍数的data被填充16字节,已经修改为下方法。

padding = lambda data, block=16: data + [(16 - len(data) % block)for _ in range((16 - len(data) % block)%16)]