10 个不稳定版本 (3 个破坏性版本)
0.4.2 | 2022年6月21日 |
---|---|
0.4.1 | 2022年6月13日 |
0.3.2 | 2022年5月17日 |
0.3.0 | 2022年3月29日 |
0.1.0 | 2021年8月31日 |
#3 在 #subspace
245KB
6.5K SLoC
这是将 SLOTH(慢速时间哈希函数)转换为使用标准 CBC 块密码的时间不对称排列的改编。
此库包含两个主要实现
- CPU
- OpenCL(需要启用
opencl
功能)
WebAssembly(也支持 no_std
)但在此情况下需要可用的 llvm-ar
命令以使 build.rs
成功。
CPU
CPU 实现
- 针对具有 ADX ISA 扩展的 x86-64 处理器的优化汇编辅助实现(Linux、macOS 和 Windows)
- 任何支持
__int128
C 类型的 64 位平台(现代 GCC/Clang,但不支持 MSVC) - 其他平台的后备
更多详细信息,请参阅 src/cpu
下的 README.md。
OpenCL
OpenCL 是一种通用实现,支持 AMD (ROCm)、Nvidia (CUDA) 和 Intel GPU,包括在同一台机器上同时支持多个 GPU 供应商。
OpenCL 实现的详细信息可以在 src/opencl
下的 mod.rs 中找到。
如何进行测试
在根目录下简单运行 cargo test
- 使用
cargo test --features=opencl
启用 opencl 测试(必须在您的设备上安装 openCL 驱动程序)
如何进行基准测试
在根目录下简单运行 cargo bench
- 使用
cargo bench --features=opencl
启用 opencl 测试(必须在您的设备上安装 openCL 驱动程序)
许可协议
在以下任一许可协议下授权:
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任您选择。
贡献
除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交给 cc-rs 的任何贡献,应按上述方式双许可,不附加任何额外的条款或条件。
依赖项
~0–1.3MB
~17K SLoC