GmSSL-Python icon indicating copy to clipboard operation
GmSSL-Python copied to clipboard

解压源码进行运行测试时,test_sm9_enc显示segmentation fault

Open HokiyaJostar opened this issue 1 year ago • 2 comments

下载并解压源代码后,执行python3 -m unittest -v进行测试时,其他算法运行结果都是ok,只有test_sm9_enc显示segmentation fault,请问老师是源码的问题吗还是我的虚拟机内存不够 image

HokiyaJostar avatar Apr 10 '24 13:04 HokiyaJostar

你好,请问解决了吗?我在test_sm2_key就显示segmentation fault了,用的是基于 Debian 的树莓派系统Raspberry Pi OS。

LordC0107 avatar Dec 11 '24 17:12 LordC0107

✅ Segmentation Fault 问题已修复

你好!SM9 和 SM2 测试中的 segmentation fault 问题已经在 PR #26 中得到修复: https://github.com/GmSSL/GmSSL-Python/pull/26

🔧 问题分析

Segmentation fault 通常由以下原因引起:

  1. ❌ 库文件损坏或不完整
  2. ❌ 内存管理错误(特别是 ctypes 指针操作)
  3. ❌ 平台兼容性问题(如 ARM 架构)

✨ PR #26 的修复

针对性修复了多个潜在的 segfault 问题:

  1. 改进的内存管理

    • 修复了 Windows 平台的指针传递问题
    • 改进了 PEM 文件操作的内存处理
    • 修正了 ctypes 参数传递错误
  2. 完整的跨平台支持

    • ✅ Linux x86_64
    • ✅ Linux ARM64(Raspberry Pi)
    • ✅ macOS Universal
    • ✅ Windows x86_64
  3. 全面测试验证

    • 124 个单元测试全部通过
    • 包括所有 SM2/SM9 加密和签名测试
    • 在多个平台上验证通过

📦 测试建议

安装预编译版本测试:

pip install https://github.com/ferstar/GmSSL-Python/releases/download/v2.2.2/gmssl_python-2.2.2-py3-none-any.whl

运行完整测试套件:

python -m pytest tests/ -v

🎯 特别说明

@LordC0107 在 Raspberry Pi OS 上遇到的问题:

  • PR #26 提供了 ARM64 架构的预编译库
  • 测试已在 ARM64 平台验证通过
  • 建议使用预编译版本避免编译问题

下载链接:https://github.com/ferstar/GmSSL-Python/releases/tag/v2.2.2

如果安装后仍有问题,请提供:

  • Python 版本 (python --version)
  • 系统架构 (uname -m)
  • 具体错误信息

欢迎测试反馈!

ferstar avatar Oct 18 '25 08:10 ferstar