4 个版本 (2 个重大更改)
0.3.0 | 2022 年 8 月 7 日 |
---|---|
0.2.0 | 2022 年 8 月 6 日 |
0.1.1 | 2022 年 8 月 1 日 |
0.1.0 | 2022 年 7 月 30 日 |
#1692 在 嵌入式开发
每月 210 次下载
在 2 个包中使用 (通过 w5500-tls)
75KB
2.5K SLoC
P256-CM4
A (主要) Rust 重新实现 Emill/P256-Cortex-M4.
Rust 1.59.0 稳定了 global_asm 宏,这允许在不使用任何额外工具的情况下编译。无需 build.rs
脚本或外部汇编器。
限制
这还不是完整的,它缺少与其他目标(通过 RustCrypto 特性或编译时切换)的互操作性。有关互操作性解决方案,请参阅 ycrypto/p256-cortex-m4。
由于 Rust 特性不如 C 预处理器宏强大,因此它缺少原始源的可配置性。如果您需要可配置性,请使用 ycrypto/p256-cortex-m4-sys。
比较
在 STM32WLE5 上测量。
实现 | 签名周期(约) | 验证周期(约) | 闪存大小(约) |
---|---|---|---|
硬件 PKA | 5,211,859 | 10,516,860 | 1,582 B |
RustCrypto | 7,856,436 | 14,303,277 | 49 kiB |
p256-cm4 |
442,754 | 1,225,746 | 10 kiB |
维护者备注
测试
安装 probe-run.
调整 .cargo/config.toml
、memory.x
、testsuite/Cargo.toml
和目标时钟设置。
DEFMT_LOG=trace cargo test -p testsuite
ASM 生成
将来自 Emill/P256-Cortex-M4 的 GCC ASM 通过预处理器发送。
arm-none-eabi-gcc -O0 -ffunction-sections -fdata-sections -g -fno-omit-frame-pointer -mthumb -march=armv7e-m -Wall -Wextra -std=c11 -march=armv7e-m -c P256-Cortex-M4/p256-cortex-m4-asm-gcc.S -E > asm.s