#elabs #secp256k1 #public-key #private-key #signer #hash

elabs-crypto

Elabs 加密包:加密工具

1 个不稳定版本

0.1.0 2022年2月9日

#1984 in 加密学

GPL-3.0-or-later

20KB
283

Elabs Crypto.

此 crate 提供了一组加密辅助函数。它提供了 secp256k1 公钥、私钥、签名者和 hash 函数。此 crate 基于 secp256k1tiny-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 基于 secp256k1tiny-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