Skip to content

priscira/sm-crypto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmCrypto

本项目是对sm-cryptoJavaScript实现)算法的其他语言实现,主要目的是同步其加密和解密接口。

计划中的实现语言,以及其目前各自的实现情况如下:

语言 SM2算法 SM3算法 SM4算法
Rust $\checkmark$(仅供学习使用) $\checkmark$ $\checkmark$
Python $-$ $\checkmark$ $\checkmark$
Go $-$ $-$ $-$
Nim $-$ $-$ $\checkmark$

SM2算法的实现均仅供学习使用。

安全声明

SM2算法的实现均仅供学习使用。

Rust实现

Rust实现使用了num-bigint库并非为了密码学设计,其

  • 没有常数时间保证,易受定时攻击
  • 内部可能存在内存分配模式可观察性,易受侧信道攻击
  • 不提供随机化缓解措施,易受故障注入攻击
  • 缺少密码学必要的安全性检查,未实现标准化的随机数生成(目前使用rand库而非符合密码学标准的RNG)。

如果需要在生产中使用SM2,建议选择如下实现:

  • ……

sm2实现了SM2的常数级别的椭圆曲线运算,但没有实现加解密、签名和验签。

使用示例

对于各语言的模块调用示例,请参考各语言的文件夹中的tests测试示例。

其他

About

Implementation of sm-crypto in other languages.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors