微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

守护进程因 openSSL 椭圆曲线不匹配而崩溃EC_POINT_is_on_curve

如何解决守护进程因 openSSL 椭圆曲线不匹配而崩溃EC_POINT_is_on_curve

我的现有代码存在守护程序崩溃问题,其中包括处理通过设备配置协议 (DPP) 登录的身份验证请求。 Initiator 可以成功发送身份验证请求,但响应者守护进程在处理身份验证请求时崩溃。根据 gdb 核心转储文件,崩溃的原因是 openssl 函数:EC_POINT_is_on_curve。我的代码的签名是这样的:EC_POINT_is_on_curve(group,peer_proto_pub_key,bnctx),其中“group”是struct指针*EC_GROUP,本例中的*EC_POINT是“peer_proto_pub_key”,它是从EC_POINT_new API获取的。而结构指针 *BN_CTX 是 bnctx。所用曲线为P-256。

根据日志的确切错误是“do_page_fault:将 SIGSEGV 发送到 dpp 以获取来自……的无效读取访问”

到目前为止,我已经尝试了一些选项,包括但不限于检查指针,无论它们是不是 NULL 或悬空,正确初始化,正确释放与否。检查使用了正确的curve_nid。此外,将 openssl 从 1.0.1c 更新为 1.0.2o。

如果有人能帮忙就好了。

谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。