rust - 使用 Rust openssl 导出 EC 公钥

标签 rust openssl

我刚刚开始使用 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/

相关文章:

rust - 为什么 Rust 中的堆栈值相差如此之远?

rust - 通用 `impl<T: Read + Seek> KaitaiStream for T {}`的Rust特征暗示

Python MySQLdb 无法连接到服务器,SSL 问题

PHP curl 错误 : unable to use client certificate (no key found or wrong pass phrase? )

c++ - SSL 握手产生 BIO 错误

c# - 在 .NET 中使用 OpenSSL 加密和解密文件

input - 如何在 Rust 1.0 中读取用户输入的整数?

multithreading - 达到超时并在Rust中输出过程时终止过程

rust - 为什么对 `fn pop(&mut self) -> Result<T, &str>` 的调用继续借用我的数据结构?

encryption - 使用 OpenSSL 生成短许可证 key