4 个版本
0.1.3 | 2019 年 10 月 21 日 |
---|---|
0.1.2 | 2019 年 10 月 16 日 |
0.1.1 | 2019 年 10 月 14 日 |
0.1.0 | 2019 年 10 月 12 日 |
#17 在 #forge
每月 25 次下载
在 4 crates 中使用
11KB
181 行
简介
forge_signer
使用 Rust
实现。
支持签名算法 ed25519
、secp256k1
。
trait Signer
trait Signer {
fn get_key_pair() -> Self;
fn get_public_key(sk: &[u8]) -> Vec<u8>;
fn sign(sk: &[u8], message: &[u8]) -> Vec<u8>;
fn verify(pk: &[u8], message: &[u8], signature: &[u8]) -> bool;
}
API
get_key_pair(sign_type: Option<SignType>) -> (Vec<u8>, Vec<u8>)
get_pk_by_sk(sk: &[u8], sign_type: &Option<SignType>) -> Vec<u8>
sign(sk: &[u8], message: &[u8], sign_type: Option<SignType>) -> Vec<u8>
verify(pk: &[u8], message: &[u8], signature: &[u8], sign_type: Option<SignType>) -> bool
用法
let ed25519_key_pair = get_key_pair(Some(SignType::Ed25519));
let expect_pk = get_pk_by_sk(&ed25519_key_pair.0, &Some(SignType::Ed25519));
assert_eq!(ed25519_key_pair.1, expect_pk);
let message = b"hello rust";
let signature = sign(&ed25519_key_pair.0, message, Some(SignType::Ed25519));
assert!(verify(&ed25519_key_pair.1, message, &signature, Some(SignType::Ed25519)));
依赖
~6MB
~97K SLoC