aes-wasm

Crates.ioaes-wasm
lib.rsaes-wasm
version0.1.11
sourcesrc
created_at2023-05-23 19:38:39.463566
updated_at2024-09-03 15:19:18.573167
descriptionAES-GCM, AES-OCB, AEGIS, AES-CTR, CMAC-AES for WebAssembly
homepage
repositoryhttps://github.com/jedisct1/rust-aes-wasm
max_upload_size
id872273
size213,765
Frank Denis (jedisct1)

documentation

README

Docs.rs crates.io

Fast(er) AES-based constructions for Rust and WebAssembly

  • AEGIS-128L
  • AEGIS-256
  • AES-128-CTR
  • AES-256-CTR
  • AES-128-OCB
  • AES-256-OCB
  • AES-128-GCM
  • AES-256-GCM
  • AES-128-CBC with PKCS#7 padding
  • AES-256-CBC with PKCS#7 padding
  • CMAC-AES-128

This is a set of AES-based constructions (AEAD, stream cipher, MAC) for WebAssembly applications written in Rust.

They are trivial to use and this crate has zero dependencies.

Benchmarks

Benchmarks can be run with the cargo wasix bench command.

Performance results using Wasmtime 9.0.1 on Apple M1

algorithm crate throughput
aes256-gcm (aes crate) 49.63 M/s
aes256-gcm this crate 98.86 M/s
aes128-gcm (aes crate) 59.87 M/s
aes128-gcm this crate 115.47 M/s
aes256-ocb this crate 168.43 M/s
aes128-ocb this crate 215.23 M/s
aes-128-cbc (cbc crate) 48.48 M/s
aes-128-cbc this crate 225.63 M/s
aes-256-cbc (cbc crate) 35.49 M/s
aes-256-cbc this crate 171.89 M/s
aegis-256 this crate 478.57 M/s
aegis-128l (aegis crate) 533.85 M/s
aegis-128l this crate 695.85 M/s
aes128-ctr (ctr crate) 104.63 M/s
aes128-ctr this crate 217.10 M/s
cmac-aes128 (cmac crate) 53.99 M/s
cmac-aes128 this crate 233.34 M/s

Performance results using Wasmtime 9.0.1 on Ryzen 7

algorithm crate throughput
aes256-gcm (aes crate) 63.79 M/s
aes256-gcm this crate 129.44 M/s
aes128-gcm (aes crate) 75.09 M/s
aes128-gcm this crate 149.31 M/s
aes256-ocb this crate 205.39 M/s
aes128-ocb this crate 260.56 M/s
aegis-256 this crate 497.97 M/s
aegis-128l (aegis crate) 537.49 M/s
aegis-128l this crate 696.61 M/s
aes128-ctr (ctr crate) 151.26 M/s
aes128-ctr this crate 275.51 M/s
cmac-aes128 (cmac crate) 78.63 M/s
cmac-aes128 this crate 260.23 M/s
Commit count: 38

cargo fmt