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嵌入式开发

Download history 31/week @ 2024-03-11 28/week @ 2024-03-18 15/week @ 2024-03-25 42/week @ 2024-04-01 29/week @ 2024-04-08 30/week @ 2024-04-15 24/week @ 2024-04-22 19/week @ 2024-04-29 33/week @ 2024-05-06 40/week @ 2024-05-13 28/week @ 2024-05-20 26/week @ 2024-05-27 127/week @ 2024-06-03 27/week @ 2024-06-10 30/week @ 2024-06-17 23/week @ 2024-06-24

每月 210 次下载
2 个包中使用 (通过 w5500-tls)

MIT 许可证

75KB
2.5K SLoC

GNU Style Assembly 1.5K SLoC // 0.0% comments Rust 698 SLoC // 0.1% comments

P256-CM4

CI crates.io docs

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.tomlmemory.xtestsuite/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

无运行时依赖项