- 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 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 |