1 个不稳定版本
0.1.0 | 2022年2月9日 |
---|
#1984 in 加密学
20KB
283 行
Elabs Crypto.
此 crate 提供了一组加密辅助函数。它提供了 secp256k1
公钥、私钥、签名者和 hash
函数。此 crate 基于 secp256k1
和 tiny-keccak
。
用法
[dependencies]
elabs-crypto = "0.1"
示例
use elabs_crypto::*;
fn main() {
let msg = b"hello world";
let hash = keccak256(msg);
let sk = PrivateKey::random();
let pk = sk.to_public().unwrap();
let sig = sign(msg, sk).unwrap();
let (recid, bsig) = sig.serialize_compact();
let pk2 = ecrecover(&hash, &bsig, recid.to_i32() as u8).unwrap();
assert_eq!(pk, pk2);
}
lib.rs
:
Elabs Crypto.
此 crate 提供了一组加密辅助函数。它提供了 secp256k1
公钥、私钥、签名者和 hash
函数。此 crate 基于 secp256k1
和 tiny-keccak
。
用法
[dependencies]
elabs-crypto = "0.1"
示例
use elabs_crypto::*;
fn main() {
let msg = b"hello world";
let hash = keccak256(msg);
let sk = PrivateKey::random();
let pk = sk.to_public().unwrap();
let sig = sign(msg, sk).unwrap();
let (recid, bsig) = sig.serialize_compact();
let pk2 = ecrecover(&hash, &bsig, recid.to_i32() as u8).unwrap();
assert_eq!(pk, pk2);
}
依赖关系
~5.5MB
~53K SLoC