aboutsummaryrefslogtreecommitdiff
path: root/benchmark.bash
diff options
context:
space:
mode:
authorFrank Denis2025-02-25 15:03:50 +0100
committerJakob Unterwurzacher2025-03-12 20:43:23 +0100
commit779a850e0fb967aac79124c7e18b14706d5f2652 (patch)
tree5220a72c4b22a01c74f8d48f4787c4dae9cb1cbe /benchmark.bash
parent106470d940f7d9fa584463c92f7b2f4f51bce215 (diff)
Add optional support for AEGIS encryption
AEGIS is a new family of authenticated encryption algorithms that offers stronger security, higher usage limits, and better performance than AES-GCM. This pull request adds support for a new `-aegis` command-line flag, allowing AEGIS-128X2 to be used as an alternative to AES-GCM on CPUs with AES acceleration. It also introduces the ability to use ciphers with different key sizes. More information on AEGIS is available here: - https://cfrg.github.io/draft-irtf-cfrg-aegis-aead/draft-irtf-cfrg-aegis-aead.html - https://github.com/cfrg/draft-irtf-cfrg-aegis-aead gocryptfs -speed speed on Apple M1: AES-GCM-256-OpenSSL 3718.79 MB/s AES-GCM-256-Go 5083.43 MB/s (selected in auto mode) AES-SIV-512-Go 625.20 MB/s XChaCha20-Poly1305-OpenSSL 1358.63 MB/s (selected in auto mode) XChaCha20-Poly1305-Go 832.11 MB/s Aegis128X2-Go 11818.73 MB/s gocryptfs -speed speed on AMD Zen 4: AES-GCM-256-OpenSSL 5215.86 MB/s AES-GCM-256-Go 6918.01 MB/s (selected in auto mode) AES-SIV-512-Go 449.61 MB/s XChaCha20-Poly1305-OpenSSL 2643.48 MB/s XChaCha20-Poly1305-Go 3727.46 MB/s (selected in auto mode) Aegis128X2-Go 28109.92 MB/s
Diffstat (limited to 'benchmark.bash')
-rwxr-xr-xbenchmark.bash7
1 files changed, 6 insertions, 1 deletions
diff --git a/benchmark.bash b/benchmark.bash
index fb99c65..db962a7 100755
--- a/benchmark.bash
+++ b/benchmark.bash
@@ -17,6 +17,7 @@ OPT_OPENSSL=""
OPT_DIR=""
DD_ONLY=""
OPT_XCHACHA=""
+OPT_AEGIS=""
while [[ $# -gt 0 ]] ; do
case $1 in
@@ -42,6 +43,9 @@ while [[ $# -gt 0 ]] ; do
-xchacha)
OPT_XCHACHA="-xchacha"
;;
+ -aegis)
+ OPT_AEGIS="-aegis"
+ ;;
-*)
echo "Invalid option: $1"
usage
@@ -82,9 +86,10 @@ elif [[ $OPT_LOOPBACK -eq 1 ]]; then
"$HOME/go/src/github.com/hanwen/go-fuse/example/loopback/loopback" "$MNT" "$CRYPT" &
sleep 0.5
else
- echo -n "Testing gocryptfs $OPT_XCHACHA $OPT_OPENSSL at $CRYPT: "
+ echo -n "Testing gocryptfs $OPT_XCHACHA $OPT_AEGIS $OPT_OPENSSL at $CRYPT: "
gocryptfs -version
gocryptfs $OPT_XCHACHA -q -init -extpass="echo test" -scryptn=10 "$CRYPT"
+ gocryptfs $OPT_AEGIS -q -init -extpass="echo test" -scryptn=10 "$CRYPT"
gocryptfs $OPT_OPENSSL -q -extpass="echo test" "$CRYPT" "$MNT"
fi