Public EC key from buffer
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 25/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- ruby
- 领域
- cryptography
调研方向
从 lib/net/ssh/transport/openssl.rb 中 EC 公钥构造的相关部分开始,检查在 OpenSSL 3.x 上不可变密钥错误是如何发生的。运行 test/transport/kex/test_ecdh_sha2_nistp256.rb,并使用其中失败的交换测试来验证受支持的等效实现已经完成且密钥交换成功。
由索引模型根据 Issue 内容生成。
描述
In net-ssh, there is following code:
public_key_oct = buffer.read_string
begin
key = OpenSSL::PKey::EC.new(OpenSSL::PKey::EC::CurveNameAlias[curve_name_in_key])
group = key.group
point = OpenSSL::PKey::EC::Point.new(group, OpenSSL::BN.new(public_key_oct, 2))
key.public_key = point
return key
rescue OpenSSL::PKey::ECError
raise NotImplementedError, "unsupported key type `#{type}'"
end
Which fails with OpenSSL 3.x:
1) Error:
Transport::Kex::TestEcdhSHA2NistP256#test_exchange_keys_should_return_expected_results_when_successful:
OpenSSL::PKey::PKeyError: pkeys are immutable on OpenSSL 3.0
/builddir/net-ssh/lib/net/ssh/transport/openssl.rb:164:in `public_key='
/builddir/net-ssh/lib/net/ssh/transport/openssl.rb:164:in `read_keyblob'
/builddir/net-ssh/lib/net/ssh/buffer.rb:325:in `read_keyblob'
/builddir/net-ssh/lib/net/ssh/buffer.rb:248:in `read_key'
/builddir/net-ssh/lib/net/ssh/transport/kex/abstract5656.rb:54:in `send_kexinit'
/builddir/net-ssh/lib/net/ssh/transport/kex/abstract.rb:48:in `exchange_keys'
/builddir/net-ssh/test/transport/kex/test_ecdh_sha2_nistp256.rb:96:in `exchange!'
/builddir/net-ssh/test/transport/kex/test_ecdh_sha2_nistp256.rb:18:in `test_exchange_keys_should_return_expected_results_when_successful'
Unfortunately, I struggle to find the right equivalent to implement this with immutable pkeys.
- 主要语言
- C
- 星标
- 276
- 派生
- 200
- 平均合并
- 15 小时 27 分钟
- 30 天内合并 PR
- 7
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ruby/openssl 的其他 Issue
-
Explicit check for true instead of true-ish in OpenSSL::BN.rand可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 55/100
维护者通常 1 天内回复
-
Expose XOFs like SHAKE128 and SHAKE256可能已有人在做 @rhenium 于 90 天前认领。 未关闭
难度 4/5 3-5 天 新手友好度 48/100
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 35/100
维护者通常 1 天内回复
-
Unchecked *_set_* calls可能已有人在做 @ndossche 于 160 天前认领。 未关闭
难度 4/5 3-5 天 新手友好度 35/100
维护者通常 1 天内回复
相似的 Issue
-
CVE-2026-18839 popt: size_t underflow in `singleOptionHelp`可能已有人在做 @pmatilai 于 34 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 70/100
rpm-software-management/popt#143 ·
-
难度 1/5 1 小时以内 新手友好度 85/100
-
难度 1/5 1 小时以内 新手友好度 85/100
libretro/mupen64plus-libretro-nx#663 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 90/100
-
难度 2/5 1-3 小时 新手友好度 65/100
dkfans/keeperfx#5415 · 1 条评论 ·
维护者通常 1 天内回复