增加根据私钥获取公钥的方法
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..])
|
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
|
pub fn hash_message<S>(message: S) -> H256
|
||||||
where
|
where
|
||||||
S: AsRef<[u8]>,
|
S: AsRef<[u8]>,
|
||||||
@ -75,8 +81,9 @@ impl Wallet {
|
|||||||
pub fn retrieve_keys(file_path: &str) -> Result<Wallet> {
|
pub fn retrieve_keys(file_path: &str) -> Result<Wallet> {
|
||||||
let file = OpenOptions::new().read(true).open(file_path)?;
|
let file = OpenOptions::new().read(true).open(file_path)?;
|
||||||
let buf_reader = BufReader::new(file);
|
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)
|
Ok(wallet)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,9 +99,9 @@ impl Wallet {
|
|||||||
share_amount: 3,
|
share_amount: 3,
|
||||||
prime: pb,
|
prime: pb,
|
||||||
};
|
};
|
||||||
|
let skey = "64a6f7baa58d7381f4068fc729568009ef8f36e9c7d9c33d2cf06afc25c01e87";
|
||||||
let secret = BigInt::parse_bytes(
|
let secret = BigInt::parse_bytes(
|
||||||
b"64a6f7baa58d7381f4068fc729568009ef8f36e9c7d9c33d2cf06afc25c01e87",
|
&skey.as_bytes(),
|
||||||
16,
|
16,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
@ -104,6 +111,18 @@ impl Wallet {
|
|||||||
let key1 = shares[2].clone().1;
|
let key1 = shares[2].clone().1;
|
||||||
println!("key0: {:?}", key0.to_str_radix(16));
|
println!("key0: {:?}", key0.to_str_radix(16));
|
||||||
println!("key1: {:?}", key1.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 kp0: (usize, BigInt) = (2, key0);
|
||||||
let kp1 = (3, key1);
|
let kp1 = (3, key1);
|
||||||
let tmp = vec![kp0, kp1];
|
let tmp = vec![kp0, kp1];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user