liyujie
2025-08-28 786ff4f4ca2374bdd9177f2e24b503d43e7a3b93
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#    $OpenBSD: cipher-speed.sh,v 1.13 2015/03/24 20:22:17 markus Exp $
#    Placed in the Public Domain.
 
tid="cipher speed"
 
getbytes ()
{
   sed -n -e '/transferred/s/.*secs (\(.* bytes.sec\).*/\1/p' \
       -e '/copied/s/.*s, \(.* MB.s\).*/\1/p'
}
 
tries="1 2"
 
for c in `${SSH} -Q cipher`; do n=0; for m in `${SSH} -Q mac`; do
   trace "proto 2 cipher $c mac $m"
   for x in $tries; do
       printf "%-60s" "$c/$m:"
       ( ${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 [ $? -ne 0 ]; then
           fail "ssh -2 failed with mac $m cipher $c"
       fi
   done
   # No point trying all MACs for AEAD ciphers since they are ignored.
   if ${SSH} -Q cipher-auth | grep "^${c}\$" >/dev/null 2>&1 ; then
       break
   fi
   n=`expr $n + 1`
done; done
 
if ssh_version 1; then
   ciphers="3des blowfish"
else
   ciphers=""
fi
for c in $ciphers; do
   trace "proto 1 cipher $c"
   for x in $tries; do
       printf "%-60s" "$c:"
       ( ${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 [ $? -ne 0 ]; then
           fail "ssh -1 failed with cipher $c"
       fi
   done
done