https://github.com/jedisct1/rust-aes-wasm
Fast(er) AES-based constructions for WebAssembly and Rust.
https://github.com/jedisct1/rust-aes-wasm
aes aes-ctr aes-gcm aes-ocb cmac rust webassembly
Last synced: 6 months ago
JSON representation
Fast(er) AES-based constructions for WebAssembly and Rust.
- Host: GitHub
- URL: https://github.com/jedisct1/rust-aes-wasm
- Owner: jedisct1
- License: mit
- Created: 2023-05-23T18:27:15.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-11T20:32:32.000Z (7 months ago)
- Last Synced: 2025-03-27T11:50:29.251Z (6 months ago)
- Topics: aes, aes-ctr, aes-gcm, aes-ocb, cmac, rust, webassembly
- Language: Rust
- Homepage:
- Size: 932 KB
- Stars: 20
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://docs.rs/aes-wasm/)
[](https://crates.io/crates/aes-wasm)# 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-128This 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 |