#aes-gcm #encryption #cmac #aes-ctr

aes-wasm

AES-GCM, AES-OCB, AEGIS, AES-CTR, CMAC-AES针对WebAssembly

11个版本

0.1.10 2024年5月9日
0.1.9 2024年2月22日
0.1.8 2023年12月3日
0.1.7 2023年9月19日
0.1.4 2023年5月30日

#519 in WebAssembly

MIT许可证

195KB
1K SLoC

Rust 1K SLoC Zig 235 SLoC // 0.0% comments

包含(静态库,160KB)wasm-libs/libaes.a

Docs.rs crates.io

为Rust和WebAssembly提供快速(更快速)的基于AES的结构

  • AEGIS-128L
  • AEGIS-256
  • AES-128-CTR
  • AES-256-CTR
  • AES-128-OCB
  • AES-256-OCB
  • AES-128-GCM
  • AES-256-GCM
  • CMAC-AES-128

这是一套针对WebAssembly应用程序(AEAD,流密码,MAC)的基于AES的结构。

它们易于使用,并且此crate没有依赖项。

基准测试

可以使用cargo wasix bench命令运行基准测试。

使用Wasmtime 9.0.1在Apple M1上的性能结果

算法 crate 吞吐量
aes256-gcm (aes crate) 49.63 M/s
aes256-gcm 此crate 98.86 M/s
aes128-gcm (aes crate) 59.87 M/s
aes128-gcm 此crate 115.47 M/s
aes256-ocb 此crate 168.43 M/s
aes128-ocb 此crate 215.23 M/s
aegis-256 此crate 478.57 M/s
aegis-128l (aegis crate) 533.85 M/s
aegis-128l 此crate 695.85 M/s
aes128-ctr (ctr crate) 104.63 M/s
aes128-ctr 此crate 217.10 M/s
cmac-aes128 (cmac crate) 53.99 M/s
cmac-aes128 此crate 233.34 M/s

使用Wasmtime 9.0.1在Ryzen 7上的性能结果

算法 crate 吞吐量
aes256-gcm (aes crate) 63.79 M/s
aes256-gcm 此crate 129.44 M/s
aes128-gcm (aes crate) 75.09 M/s
aes128-gcm 此crate 149.31 M/s
aes256-ocb 此crate 205.39 M/s
aes128-ocb 此crate 260.56 M/s
aegis-256 此crate 497.97 M/s
aegis-128l (aegis crate) 537.49 M/s
aegis-128l 此crate 696.61 M/s
aes128-ctr (ctr crate) 151.26 M/s
aes128-ctr 此crate 275.51 M/s
cmac-aes128 (cmac crate) 78.63 M/s
cmac-aes128 此crate 260.23 M/s

无运行时依赖