我刚刚开始使用 Rust,并按照 https://docs.rs/openssl/0.10.28/openssl/ 上的文档使用玩具加密库。 。我想生成一个椭圆曲线私钥+公钥对并以 der 或 pem 格式打印它们。我发现使用私钥非常简单
use openssl::ec::{EcKey,EcGroup};
use openssl::nid::Nid;
pub fn generate_keypair() {
let group = EcGroup::from_curve_name(Nid::SECP256K1).unwrap();
let key = EcKey::generate(&group).unwrap();
println!("{:?}", key.private_key_to_der().unwrap()); // can use pem instead and print as utf8-string
}
但是,EcKey
似乎没有像public_key_to_der
这样的方法来导出公钥,甚至调试打印它也不起作用:
let public = key.public_key();
println!("{:?}", public);
出现编译错误
openssl::ec::EcPointRef` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
最佳答案
好吧,看起来我需要首先使用 pkey::from_ec_key
将其包装在 PKey
中。
关于rust - 使用 Rust openssl 导出 EC 公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60657248/