1个不稳定版本
0.2.1 | 2021年8月25日 |
---|
#1951 in 加密学
每月 21 次下载
26KB
378 行
eciesrs
基于纯Rust实现secp256k1的Rust椭圆曲线集成加密方案
ECIES功能基于AES-GCM-256和HKDF-SHA256构建
这是eciespy的Rust版本eciespy。
此库可选项编译为WASM目标,详见WASM兼容性。
快速入门
use ecies::{decrypt, encrypt, utils::generate_keypair};
const MSG: &str = "helloworld";
let (sk, pk) = generate_keypair();
let (sk, pk) = (&sk.serialize(), &pk.serialize());
let msg = MSG.as_bytes();
assert_eq!(
msg,
decrypt(sk, &encrypt(pk, msg).unwrap()).unwrap().as_slice()
);
可选纯Rust AES后端
您可以选择使用OpenSSL实现或纯Rust实现的AES-256-GCM
ecies = {version = "0.2", default-features = false, features = ["pure"]}
由于一些性能问题,OpenSSL是默认后端。
纯Rust实现有时很有用,例如在WASM上构建
cargo build --no-default-features --features pure --target=wasm32-unknown-unknown
如果您在现代CPU上选择纯Rust后端,请考虑使用
RUSTFLAGS="-Ctarget-cpu=sandybridge -Ctarget-feature=+aes,+sse2,+sse4.1,+ssse3"
来加速AES加密/解密。当aes-gcm
支持自动CPU检测时,这将不再必要。
WASM兼容性
也可以使用纯Rust后端构建到wasm32-unknown-unknown
目标。有关更多详细信息,请参阅此仓库。
安全性
为什么选择AES-GCM-256和HKDF-SHA256
如AES-GCM-256之类的AEAD方案应该是您的首选对称加密方案,每次加密时都具有唯一的IV。
对于两个非对称密钥之间的共享点上的密钥派生函数,HKDF比SHA256等简单哈希函数更安全已证明。
跨语言兼容性
所有功能在不同语言之间相互检查:Python、Rust、JavaScript和Golang。
安全审计
以下依赖项已审计
发布说明
0.2.1
- 改进错误处理
0.2.0
- 改进文档
- 可选纯Rust AES后端
- WASM兼容性
0.1.1 ~ 0.1.5
- 升级依赖项
- 更新文档
- 修复错误处理
0.1.0
- 首个beta版本发布
依赖项
~4–6MB
~111K SLoC