2 个版本

0.1.9 2021年12月29日
0.1.8 2021年6月27日

#6 in #zero-net


用于 2 crates

WTFPL 许可协议

11KB
158

Build Tests Coverage Documentation

ZeruCrypt

ZeroNet/zerunet 的 Rust 加密接口。

该库是 zerunet 项目的一部分。它已从主项目分割出来,因为它可以用于构建需要签名字符数据(ZN客户端认为有效的数据)的程序。

注意

由于 bitcoin-rs 没有更新到 secp256k1 v0.17.2,因此已用 cratez 存储库中的更新版 crate 替换了这个依赖。当解决对 bitcoin crate 的依赖时,此更改可以撤销。

基准测试

Zerucrypt 尚未进行基准测试。如果您想帮忙:请联系 Ansho Rei([email protected])在 ZeroMe 或 ZeroMail 上!

验证

use zerucrypt::verify;

let data = "Testmessage";
let address = "1HZwkjkeaoZfTSaJxDw6aKkxp45agDiEzN";
let signature = "G+Hnv6dXxOAmtCj8MwQrOh5m5bV9QrmQi7DSGKiRGm9TWqWP3c5uYxUI/C/c+m9+LtYO26GbVnvuwu7hVPpUdow=";

match verify(data, address, signature) {
  Ok(_) => println!("Signature is a valid."),
  Err(_) => println!("Signature is invalid."),
}

签名

use zerucrypt::sign;

let data = "Testmessage";
let private_key = "5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss";

match sign(data, private_key) {
  Ok(signature) => println!("The signature is {}", signature),
  Err(_) => println!("An error occured during the signing process"),
}

创建

use zerucrypt::create;

let (priv_key, pub_key) = create();

依赖关系

~9MB
~122K SLoC