更新日志
v1.2.1 (2025-11-24)
- 修复
Sm2非对称椭圆曲线加密算法中wNAF算法错误造成某些情况下解密失败的bug - 优化
Sm2非对称椭圆曲线加密算法中曲线域元素运算实现 - 增加
Sm2非对称椭圆曲线加密算法对BIT_STRING格式密钥直接解析支持 - 简化测试循环语法,从
for循环改为range循环
v1.2.0 (2025-11-11)
- 移除
RSAKeyPair结构体的LoadPublicKey和LoadPrivateKey方法 - 移除
Ed25519KeyPair结构体的LoadPublicKey和LoadPrivateKey方法 - 优化编码器和解码器性能,重用读缓冲区,减少内存分配和复制
RSAKeyPair结构体的GenKeyPair,SetPublicKey,SetPrivateKey方法从无返回值改为返回errorEd25519KeyPair结构体的GenKeyPair,SetPublicKey,SetPrivateKey方法从无返回值改为返回errorRSAKeyPair结构体增加FormatPublicKey和FormatPrivateKey方法,用于将base64编码的der格式的RSA公钥和私钥格式化成pem格式Ed25519KeyPair结构体增加FormatPublicKey和FormatPrivateKey方法,用于将base64编码的der格式的Ed25519公钥和私钥格式化成pem格式RSAKeyPair结构体增加CompressPublicKey和CompressPrivateKey方法,用于将pem格式的RSA公钥和私钥压缩成经过base64编码的der格式Ed25519KeyPair结构体增加CompressPublicKey和CompressPrivateKey方法,用于将pem格式的Ed25519公钥和私钥压缩成经过base64编码的der格式- 增加
Sm2非对称椭圆曲线加密算法支持,包括标准处理和流式处理
v1.1.8 (2025-11-05)
- 修复
*RsaKeyPair.formatPublicKey和*RsaKeyPair.formatPrivateKey格式化密钥失败的 bug - 修复
*Ed25519KeyPair.formatPublicKey和*Ed25519KeyPair.formatPrivateKey格式化密钥失败的 bug - 修复解密时对编码过的密文解码失败后无法获取错误的 bug
- 对称分组加密算法中默认填充模式从
PKCS7改为No - 增加
Unicode编码解码支持,包括标准处理和流式处理 - 对称分组加密算法增加
TBC填充模式支持
v1.1.7 (2025-10-20)
- 修复非对称数字签名算法中验签错误的 bug #30
- 优化流式处理逻辑,添加对
reader位置重置的支持,确保从数据源的开头开始读取,避免因之前读取操作导致的位置偏移问题,保证流式操作的完整性和正确性 crypto/cipher/block.go中newXXXEncrypter和newXXXDecrypter系列私有方法更改成公开方法NewXXXEncrypter和NewXXXDecryptercrypto/cipher/padding.go中newXXXPadding和newXXXUnPadding系列私有方法更改成公开方法NewXXXPadding和NewXXXUnPadding- 增加
sm4中国国家标准分组加密算法支持,包括标准处理和流式处理,支持不同分块模式和填充模式
v1.1.6 (2025-10-12)
- 使用
io.CopyBuffer简化流式处理逻辑 - 优化
tea加密算法,支持不同分块模式和填充模式 - 增加
xtea加密算法支持,包括标准处理和流式处理
v1.1.5 (2025-10-01)
- 修复对称加密算法中对不需要填充的分组模式(如 CFB/OFB/CTR/GCM 等)进行填充时加解密错误的bug
v1.1.4 (2025-09-23)
- 将方法接受者从指针改成值,防止出现使用全局默认实例时属性污染现象,调用方
API没有任何影响 - 增加
twofish加密算法支持,包括标准处理和流式处理
v1.1.3 (2025-09-15)
- 优化
3DES对称加密算法对16字节密钥的兼容 - 优化
DES对称加密算法对不支持的GCM模式的校验 - 优化
3DES对称加密算法对不支持的GCM模式的校验 - 优化
Blowfish对称加密算法对不支持的GCM模式的校验 - 更新
testify依赖至v1.11.1 - 增加
Salsa20加密算法支持,包括标准处理和流式处理
v1.1.2 (2025-09-08)
- 编码/解码支持通过
coding.BufferSize全局变量自定义文件流缓冲区大小 - 加密/解密支持通过
crypto.BufferSize全局变量自定义文件流缓冲区大小 - Hash/Hmac 算法支持通过
hash.BufferSize全局变量自定义文件流缓冲区大小 - 增加
Blake2b哈希算法支持,包括blake2b-256、blake2b-384和blake2b-512 - 增加
Blake2s哈希算法支持,包括blake2s-128和blake2s-256 - 增加
ChaCha20加密算法支持 - 增加
ChaCha20Poly1305加密算法支持
v1.1.1 (2025-09-01)
- 对称加密算法从
ByXXX(cipher.XXXCipher)改成ByXXX(*cipher.XXXCipher) - 将工具包名从
utils改成util - 编码/解码、加密/解密、Hash/Hmac、签名/验签支持真正的流式处理
- 当输入数据为空时,直接返回空数据而不执行后续操作
- 增加
ED25519数字签名和验证支持 - 增加
SM3哈希算法支持 - 增加
mock/hash.go来模拟hash.Hash接口的错误 coding/morse/morse.go增加对空格、标点符号和特殊字符的支持
v1.1.0 (2025-08-23)
⚠️ 这是一个破坏性更新版本,请慎重升级,但是强烈建议升级
- 删除
BySafeURL编码/解码方法 - 删除
Sm3哈希算法(hash)和消息认证码算法(hmac) - 重命名
ByBase64URL编码/解码方法为ByBase64Url - 哈希算法(
hash)调用方式从dongle.Encrypt.ByXXX()改成dongle.Hash.ByXXX() - 消息认证码算法(
hmac)调用方式从dongle.Encrypt.ByHmacXXX()改成dongle.Hash.WithKey().ByXXX() - 重构
AES,DES,3DES,Blowfish等对称加密/解密方法,统一使用cipher.NewXXXCipher() - 重构
RSA等非对称加密/解密方法,统一使用keypair.NewXXXKeyPair() - 增加对
文件流编码/解码、加密/解密、Hash/Hmac、签名/验签的支持 - 新增
ByBase32Hex编码/解码方法 base32/base32Hex编码增加对自定义字符集的支持base45编码增加对自定义字符集的支持base58编码增加对自定义字符集的支持base62编码增加对自定义字符集的支持base64/base64Url编码增加对自定义字符集的支持
v1.0.1 (2024-11-22)
- 优化代码质量和组织结构
- 修复
AES-CBC-PKCS5加密解密错误的 bug base62支持自定义编码表- 删除
errors.go文件,将错误信息迁移到各个文件里 - 统一单元测试格式
- 移除中文注释
v1.0.0 (2024-11-11)
- 修复了 AES/ECB/PKCS5 填充导致的 panic
- 更改了仓库和徽章 URL
有关更早版本的更新日志,请参阅 releases