1 Star 0 Fork 0

jimmy / rust_sm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

rust_sm rust的国密实现

注意:

  • win首次运行cargo run,调用动态链接(源代码目录下dll文件),运行时build.rs自动将动态链接拷贝到OUT_DIR,代码调用是通过env!得到out_dir位置,但是删除target文件夹,可执行文件无法找到链接文件,需要设置环境变量OUT_DIR,并且将libgosm.dll移动到这个文件夹。
  • linux下运行cargo run 和build,由于采用静态库链接打包,没有任何影响。
  • 所有代码在linux系统和win10经过测试,win只能使用gnu,不可以msvc。
  • win10设置环境变量: set OUT_DIR=<你存放libgosm.dll文件的文件夹位置>。
  • linux无需设置。
  • 文档:https://docs.rs/rust_sm/0.1.4/rust_sm/

生成国密sm2密钥对,运行目录下私钥sk.pem,公钥pk.pem

GenKeyPair();

sm2 加密 解密

Examples

 let pk="./pk.pem";
 let sk="./sk.pem";
 let enc=Sm2Enc(pk,"testmsg");
 let dec=Sm2Dec(sk,&enc);

sm2 签名验签

Examples

let pk="./pk.pem";
 let sk="./sk.pem";
 let sign=Sm2Sign(sk,"testmsg");
 let istrue=Sm2Verify(pk,"testmsg",&sign);

sm3 摘要加密

Examples

let enc=Sm3("testmsg");

sm4 加密解密

Examples

let k = "1234567890abcdef";
let enc=Sm4Enc(k,"testmsg");
let dec=SmeDec(k,&enc);

空文件

简介

国密算法-rust 展开 收起
Rust 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Rust
1
https://gitee.com/jimmylau/rust_sm.git
git@gitee.com:jimmylau/rust_sm.git
jimmylau
rust_sm
rust_sm
master

搜索帮助