# $OpenBSD: cipher-speed.sh,v 1.13 2015/03/24 20:22:17 markus Exp $ # Placed in the Public Domain. setglobal tid = '"cipher speed'" proc getbytes { sed -n -e '/transferred/s/.*secs (\(.* bytes.sec\).*/\1/p' \ -e '/copied/s/.*s, \(.* MB.s\).*/\1/p' } setglobal tries = '"1 2'" for c in [$[$(SSH) -Q cipher]] { setglobal n = '0'; for m in [$[$(SSH) -Q mac]] { trace "proto 2 cipher $c mac $m" for x in [$tries] { printf "%-60s" "$c/$m:" shell { $(SSH) -o 'compression no' \ -F $OBJ/ssh_proxy -2 -m $m -c $c somehost \ exec sh -c '''"dd of=/dev/null obs=32k"''' \ < $(DATA) } 2>&1 | getbytes if test $Status -ne 0 { fail "ssh -2 failed with mac $m cipher $c" } } # No point trying all MACs for AEAD ciphers since they are ignored. if $(SSH) -Q cipher-auth | grep "^$(c)\$" >/dev/null !2 > !1 { break } setglobal n = $[expr $n + 1] }; } if ssh_version 1 { setglobal ciphers = '"3des blowfish'" } else { setglobal ciphers = ''"" } for c in [$ciphers] { trace "proto 1 cipher $c" for x in [$tries] { printf "%-60s" "$c:" shell { $(SSH) -o 'compression no' \ -F $OBJ/ssh_proxy -1 -c $c somehost \ exec sh -c '''"dd of=/dev/null obs=32k"''' \ < $(DATA) } 2>&1 | getbytes if test $Status -ne 0 { fail "ssh -1 failed with cipher $c" } } }