14个版本 (1个稳定版)
1.0.0 | 2020年3月31日 |
---|---|
1.0.0-rc.1 | 2020年2月7日 |
0.13.0-rc.2 | 2019年12月4日 |
0.12.0 | 2019年8月14日 |
0.10.0 | 2018年12月14日 |
#1 in #exonum
224 每月下载量
用于 19 个crate(9个直接使用)
60KB
842 行
Exonum的密码学原语
exonum-crypto
提供了处理各种密码学任务的高级API。
exonum-crypto
的功能包括
- 计算数据的哈希值;
- 生成用于数字签名的密钥对;
- 创建和验证数字签名。
exonum-crypto
的主要后端是 sodiumoxide
,所使用的算法包括
- SHA-256 用于哈希。
- Ed25519 用于数字签名。
有关详细信息,请参阅 crate文档。
示例
签名数据和验证签名
exonum_crypto::init();
let (public_key, secret_key) = exonum_crypto::gen_keypair();
let data = [1, 2, 3];
let signature = exonum_crypto::sign(&data, &secret_key);
assert!(exonum_crypto::verify(&signature, &data, &public_key));
计算固定数量数据的哈希值
exonum_crypto::init();
let data = [1, 2, 3];
let hash = exonum_crypto::hash(&data);
分块计算数据的哈希值
use exonum_crypto::HashStream;
exonum_crypto::init();
let data: Vec<[u8; 5]> = vec![[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]];
let mut hash_stream = HashStream::new();
for chunk in data {
hash_stream = hash_stream.update(&chunk);
}
let _ = hash_stream.hash();
用法
在您的 Cargo.toml
中将 exonum-crypto
作为依赖项包含
[dependencies]
exonum-crypto = "1.0.0"
许可证
exonum-crypto
根据 Apache 许可证(版本 2.0)授权。有关详细信息,请参阅 LICENSE。
依赖项
~1.8–4.5MB
~74K SLoC