14个版本 (1个稳定版)

1.0.0 2020年3月31日
1.0.0-rc.12020年2月7日
0.13.0-rc.22019年12月4日
0.12.0 2019年8月14日
0.10.0 2018年12月14日

#1 in #exonum

Download history 84/week @ 2024-03-11 88/week @ 2024-03-18 267/week @ 2024-03-25 161/week @ 2024-04-01 64/week @ 2024-04-08 117/week @ 2024-04-15 87/week @ 2024-04-22 77/week @ 2024-04-29 88/week @ 2024-05-06 74/week @ 2024-05-13 76/week @ 2024-05-20 51/week @ 2024-05-27 52/week @ 2024-06-03 42/week @ 2024-06-10 56/week @ 2024-06-17 71/week @ 2024-06-24

224 每月下载量
用于 19 个crate(9个直接使用)

Apache-2.0

60KB
842

Exonum的密码学原语

Travis Build Status License: Apache-2.0 rust 1.42.0+ required

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