aboutsummaryrefslogtreecommitdiff
path: root/Cargo.toml
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2025-04-10 19:34:07 +0200
committerDaniel Schadt <kingdread@gmx.de>2025-04-10 19:34:07 +0200
commitd77f4adf04f2878853d0919f908d1b110f3c94f2 (patch)
tree81d9ab0f9c1ba1bfb9ebe74d8f20362e47bad82b /Cargo.toml
parent2d2525f28aadcb149e085dbcc5fa421109457c54 (diff)
downloadzears-d77f4adf04f2878853d0919f908d1b110f3c94f2.tar.gz
zears-d77f4adf04f2878853d0919f908d1b110f3c94f2.tar.bz2
zears-d77f4adf04f2878853d0919f908d1b110f3c94f2.zip
implement aes4 and aes10 with native instructions
Even though aes::hazmat::cipher_round uses aes-ni instructions under the hood, simply loading the data (and the keys!) takes a significant amount of time. Sadly, there's no way that aes exposes that lets you re-use the "loaded" keys. By implementing aes4/aes10 directly with _mm_aesenc, we can keep the keys properly aligned. We still keep the software backend as fallback, using the software implementation of the aes crate. This gives a ~70% speedup.
Diffstat (limited to 'Cargo.toml')
-rw-r--r--Cargo.toml1
1 files changed, 1 insertions, 0 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 572e0b3..174ea24 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,6 +11,7 @@ repository = "https://codeberg.org/dunj3/zears"
aes = { version = "0.8.4", features = ["hazmat"] }
blake2 = "0.10.6"
constant_time_eq = "0.4.2"
+cpufeatures = "0.2.17"
[dev-dependencies]
hex = "0.4.3"