#!/bin/sh
o=/tmp/openssl_speed_multi_"$(openssl version | tr -c '[a-zA-Z0-9]' '_')""$(hostname 2>/dev/null || uname -n 2>/dev/null || echo "${HOSTNAME:-unknown_hostname}")"
s="${1:-10}"
n="${2:-2}"
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" -multi "$n" -evp "$c" \
	| sed "s/^evp */${c} \t/"
    done

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

) | awk '!/^Got: / && !a[$0]++' | tee "$o"

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