【发布时间】:2021-03-15 16:14:19
【问题描述】:
我找到了rust-secp256k1,这似乎是我需要的,但文档中没有示例。
我尝试在我的代码中使用这个箱子:
extern crate secp256k1;
use secp256k1::key::SecretKey;
fn main() {
let context = secp256k1::Secp256k1::without_caps();
let private_key: String = String::from("d500266f7d37f0957564e4ce1a1dcc8bb3408383634774a2f4a94a35f4bc53e0");
let secret_key = SecretKey::new(&context, &mut private_key);
println!("{:?}", secret_key);
}
我遇到了一个错误:
error[E0277]: the trait bound `std::string::String: secp256k1::rand::Rng` is not satisfied
--> src/main.rs:10:22
|
10 | let secret_key = SecretKey::new(&context, &mut private_key);
| ^^^^^^^^^^^^^^ the trait `secp256k1::rand::Rng` is not implemented for `std::string::String`
|
= note: required by `secp256k1::key::SecretKey::new`
【问题讨论】:
-
SecretKey::new需要一个随机数生成器(如,它实现了Rng)作为第二个参数。如果您将其他字符串设为兼容的字节片,则可以改用SecretKey::from_slice。