【发布时间】:2020-03-12 15:30:54
【问题描述】:
我刚刚开始使用 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
}
但是似乎没有任何方法像public_key_to_der for EcKey 来导出公钥,即使调试打印它也不起作用:
let public = key.public_key();
println!("{:?}", public);
给出编译错误
openssl::ec::EcPointRef` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
【问题讨论】: