开源推荐
morning
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 扩展不会构建/导入