ruby - 使用 Ruby OpenSSL 从私钥获取椭圆曲线公钥
问题描述
我正在使用 Ruby 2.5.x OpenSSL 库来玩椭圆曲线。我可以使用轻松生成私钥和公钥对
curve = OpenSSL::PKey::EC.new('secp256k1')
curve.generate_key
但是给定一个私钥,我想重新生成公钥。
我知道 OpenSSL 可以做到这一点,因为命令行允许您这样做,而 Ruby 比特币项目也可以做到。但是 Ruby 比特币项目有自己的使用 FFI 的 OpenSSL 接口,而不是 Ruby 提供的接口。
Ruby 2.5.x openssl 库是否没有公开足够的 OpenSSL 接口以能够从私钥生成椭圆曲线公钥,或者它可以但没有记录?
解决方案
如果有人也有兴趣获得 pem 格式的公钥:)
example_key = OpenSSL::PKey::EC.new('secp256k1').generate_key
puts example_key.to_pem
pkey = OpenSSL::PKey::EC.new(example_key.public_key.group)
pkey.public_key = example_key.public_key
puts pkey.to_pem
推荐阅读
- c - 为什么 fseek 使用 read() 系统调用?
- ruby-on-rails - Rails 中的语句类已过时?
- java - 如何使用 executeBatch 获取返回值?
- c# - Parallel.Foreach 在 Linux 机器上失败,但在 Windows 机器上工作
- ruby-on-rails - 如何使我的助手代码更苗条?
- c - CPU1 上线失败
- python - 使用 beautifullSoup 从隐藏形式中获取多重价值
- javascript - NVD3 内存泄漏问题
- sql-server - MS SQL 2019 中的 UDF 内出现意外的 @@rowcount 行为
- postgresql - PostgreSQL:后台工作人员“逻辑复制启动器”以退出代码 1 退出