GitHub 热门项目: hashsigs-py

摘要

GitHub项目:hashsigs-py 仓库地址:https://github。

hashsigs install pip the rust
2026-05-18 1 阅读 GitHub Trending
GitHub 项目:hashsigs-py 仓库地址:https://github.com/QuipNetwork/hashsigs-py 星级:11534 | 作者:Quip网络 项目描述:暂无描述 =================================================== 自述文件内容: # 哈希签名 (Python) 适用于 WOTS+ 的 Python 包,带有来自 hashsigs-rs 的可选 Rust 加速。 ## 安装 ````bash pip 安装 hashsigs ```` 为了获得最佳性能,请确保安装了 Rust(该包将自动构建 Rust 扩展(如果可用)): ````bash # 安装 Rust 工具链(可选,以获得更好的性能) 卷曲 --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs |嘘 # 然后安装 hashsigs pip 安装 hashsigs ```` ## 快速使用 ````蟒蛇 导入哈希值 # 创建 WOTS+ 实例 wots = hashsigs.WOTSPlus() # 生成密钥对 私有密钥,公共密钥 = wots.generate_key_pair() # 签署消息 message = b“你好,世界!” 签名 = wots.sign(私钥, 消息) # 验证签名 is_valid = wots.verify(public_key, 消息, 签名) print(f"签名有效:{is_valid}") # True # 检查Rust加速是否可用 尝试: 导入 hashsigs._rust print("使用 Rust 加速") 除了导入错误: print("使用纯Python实现") ```` ## 开发设置 对于想要从源代码构建的贡献者和高级用户: ````bash # 来自仓库根目录 python3 -m venv .hashsigs 源 .hashsigs/bin/activate python -m pip install -U pip pytest pytest-cov # 确保 Rust 工具链(构建可选扩展所需) # macOS:还确保 Xcode CLT:xcode-select --install rustup --版本 ||酿造安装铁锈 货物--版本 # 安装 dev deps 并尝试构建 rust 扩展(在 zsh 中引用 extras) pip install -v -e '.[rust,dev]' # 安装 keccak 提供程序(回退到 Python 时向量需要) pip 安装 pycryptodome # 或:pip install pysha3 # 快速检查扩展名是否存在(可选) python -c“导入 hashsigs._rust as m; print('rust ext ok:', m)” # Lint + 类型 + 覆盖率测试;这是全套套房 pytest -q --cov=hashsigs --cov-report=term-missing ```` 如果 Rust 工具链不可用,则上述方法将在 Rust 支持的矢量测试中失败。有关替代方案,请参阅“测试选项”部分。 ## 测试选项 您可以选择以下三个类别: - 所有测试(向量 + rust-backed + lint + 类型 + 覆盖率)——如果 keccak 或 rust ext 缺失,则失败 - pip install -e '.[rust,dev]' && pip install pycryptodome - pytest -q - 基本(仅限纯 Python 功能;需要 keccak 提供程序,但没有 Rust 扩展) - pip install -e '.[dev]' pycryptodome - HASHSIGS_BUILD_RUST = 0 pytest -q -m“不需要_rust” - 基本(无 keccak)——仅使用 hashlib.sha3_256 进行内部一致性测试;没有向量 - pip install -e '.[dev]' - pytest -q -m“不是向量” ## 故障排除 - pysha3 在 Python 3.13 (macOS) 上构建失败,缺少 pystrhex.h - 症状:致命错误:构建 _pysha3 时找不到“pystrhex.h”文件 - 修复:安装 pycryptodome(首选)。示例:pip install pycryptodome - 替代方案:使用可能存在 pysha3 轮子的 Python 3.11/3.12,或者等待 pysha3 添加 3.13 支持 - Rust 扩展不会构建/导入