增加根据私钥获取公钥的方法
This commit is contained in:
parent
81712b16d1
commit
8cea569438
@ -28,6 +28,12 @@ pub fn public_key_address(public_key: &PublicKey) -> Address {
|
||||
Address::from_slice(&hash[12..])
|
||||
}
|
||||
|
||||
pub fn get_public_key(secret_key: &str) -> PublicKey {
|
||||
let secp = Secp256k1::new();
|
||||
let secret = SecretKey::from_str(secret_key).unwrap();
|
||||
PublicKey::from_secret_key(&secp, &secret)
|
||||
}
|
||||
|
||||
pub fn hash_message<S>(message: S) -> H256
|
||||
where
|
||||
S: AsRef<[u8]>,
|
||||
@ -75,8 +81,9 @@ impl Wallet {
|
||||
pub fn retrieve_keys(file_path: &str) -> Result<Wallet> {
|
||||
let file = OpenOptions::new().read(true).open(file_path)?;
|
||||
let buf_reader = BufReader::new(file);
|
||||
let wallet: Wallet = serde_json::from_reader(buf_reader)?;
|
||||
|
||||
let wallet: Wallet = serde_json::from_reader(buf_reader)?;;
|
||||
let public_key = get_public_key(&wallet.secret_key);
|
||||
println!("public key from secret: {:?}", public_key.to_string());
|
||||
Ok(wallet)
|
||||
}
|
||||
|
||||
@ -92,9 +99,9 @@ impl Wallet {
|
||||
share_amount: 3,
|
||||
prime: pb,
|
||||
};
|
||||
|
||||
let skey = "64a6f7baa58d7381f4068fc729568009ef8f36e9c7d9c33d2cf06afc25c01e87";
|
||||
let secret = BigInt::parse_bytes(
|
||||
b"64a6f7baa58d7381f4068fc729568009ef8f36e9c7d9c33d2cf06afc25c01e87",
|
||||
&skey.as_bytes(),
|
||||
16,
|
||||
)
|
||||
.unwrap();
|
||||
@ -104,6 +111,18 @@ impl Wallet {
|
||||
let key1 = shares[2].clone().1;
|
||||
println!("key0: {:?}", key0.to_str_radix(16));
|
||||
println!("key1: {:?}", key1.to_str_radix(16));
|
||||
let key_str_0 = "539e52f2ffc060329010ae551e8684124bad26d93b0c9333154a5a5e116f5e0";
|
||||
let key_str_1 = "44c523387a58ee8628e81d5e36014e78a05838f51205d765b7e729da33727ae2";
|
||||
let key0 = BigInt::parse_bytes(
|
||||
&key_str_0.as_bytes(),
|
||||
16,
|
||||
)
|
||||
.unwrap();
|
||||
let key1 = BigInt::parse_bytes(
|
||||
&key_str_1.as_bytes(),
|
||||
16,
|
||||
)
|
||||
.unwrap();
|
||||
let kp0: (usize, BigInt) = (2, key0);
|
||||
let kp1 = (3, key1);
|
||||
let tmp = vec![kp0, kp1];
|
||||
|
Loading…
x
Reference in New Issue
Block a user