84 lines
2.2 KiB
Bash
84 lines
2.2 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
#
|
||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||
|
#
|
||
|
# Parametrisation to this script is as follows:
|
||
|
# * none yet
|
||
|
|
||
|
###
|
||
|
# Preamble
|
||
|
###
|
||
|
|
||
|
my_path="$(dirname $(readlink -f $0))" || exit $?
|
||
|
readonly my_path
|
||
|
readonly csv_path="$my_path/data"
|
||
|
|
||
|
function cleanup() {
|
||
|
echo OK
|
||
|
}
|
||
|
trap cleanup EXIT
|
||
|
|
||
|
function error_out() {
|
||
|
exit 1
|
||
|
}
|
||
|
trap error_out INT TERM
|
||
|
|
||
|
###
|
||
|
# Functions
|
||
|
###
|
||
|
|
||
|
|
||
|
|
||
|
###
|
||
|
# Implementation
|
||
|
###
|
||
|
|
||
|
configs=$(find $csv_path -maxdepth 1 -type d -name '*results_*' | sed 's@.*results_@@g') || exit $?
|
||
|
readonly configs
|
||
|
|
||
|
declare -A algos
|
||
|
algos["asym"]="ecc rsa"
|
||
|
algos["hashes"]="sha2 sha3"
|
||
|
algos["mac"]="cmac"
|
||
|
algos["rng"]="rng"
|
||
|
algos["sym"]="cbc ccm gcm"
|
||
|
|
||
|
declare -A headers
|
||
|
headers["asym"]="config,keysize_2,algorithm,keysize,operation,avg ms,ops/sec,"
|
||
|
headers["hashes"]="config,unused,algorithm,MiB/s,"
|
||
|
headers["mac"]="config,unused,algorithm,keysize,MiB/s,"
|
||
|
headers["rng"]="config,unused,algorithm,MiB/s,"
|
||
|
headers["sym"]="config,chunksize,algorithm,blocksize,direction,AAD,MiB/s,"
|
||
|
|
||
|
# "... now you have two problems"
|
||
|
declare -A filters
|
||
|
filters["ccm"]="-e s/-\(enc\|dec\)-\(no_AAD\|custom\)/,128,\1,\2/g -e s/-\(enc\|dec\),/,128,\1,,/g"
|
||
|
filters["gcm"]="-e /-192-/d -e /GMAC/d -e s/-\(enc\|dec\)-\(no_AAD\|custom\)/,\1,\2/g -e s/-\(enc\|dec\),/,\1,default,/g -e s/\(128\|256\)-GCM/GCM,\1/g"
|
||
|
filters["cbc"]="-e /-192-/d -e s/-\(enc\|dec\),/,\1,,/g -e s/\(128\|256\)-CBC/CBC,\1/g"
|
||
|
filters["cmac"]="-e s/\(128\|256\)-CMAC/CMAC,\1/g"
|
||
|
filters["ecc"]='-e 1!{/SECP384R1\|SECP521R1/!d}'
|
||
|
filters["sha2"]="-e s/SHA-/SHA2-/g"
|
||
|
|
||
|
for t in "${!algos[@]}"
|
||
|
do
|
||
|
for algo in ${algos[$t]}
|
||
|
do
|
||
|
outfile="$csv_path/combined_${algo}.csv"
|
||
|
echo ${headers[$t]} > "$outfile"
|
||
|
for cfg in $configs
|
||
|
do
|
||
|
for f in $(find $csv_path/results_${cfg} -name "*${algo}*.csv" | sort -V)
|
||
|
do
|
||
|
sz=$(basename $f | sed -e s/${algo}// -e s/_// -e s/\.csv//)
|
||
|
sz=",$sz"
|
||
|
for l in $(tail -n +2 $f | tr -d ' ')
|
||
|
do
|
||
|
echo "${cfg}${sz},${l}" >> "$outfile"
|
||
|
done
|
||
|
[ "${filters[$algo]}" == "" ] || sed -i "$outfile" ${filters[$algo]}
|
||
|
done
|
||
|
echo $algo $t $cfg
|
||
|
done
|
||
|
done
|
||
|
done
|