#!/bin/sh
o=/tmp/openssl_speed_"$(openssl version | tr -c '[a-zA-Z0-9]' '_')""$(hostname 2>/dev/null || uname -n 2>/dev/null || echo "${HOSTNAME:-unknown_hostname}")"
s="${1:-10}"
set -u
(

    for c in \
      aes-128-cbc aes-128-xts aes-128-gcm \
      aes-256-cbc aes-256-xts aes-256-gcm \
      md5 sha1 sha256 sha512 \
      sha3-256 chacha20-poly1305
    do
        openssl speed -seconds "$s" -evp "$c" \
        || echo "Test failed for algo: $c"
    done

    openssl speed -seconds "$s" \
      rsa2048 rsa4096 ecdsa eddsa

) | awk '!a[$0]++'| tee "$o"

echo ==============================================================================
cat "$o"
echo "Results dumped to file: $o"
