Added copyright notices!
[gnutls:gnutls.git] / tests / safe-renegotiation / testsrn
1 #!/bin/bash
2
3 # Copyright (C) 2010 Free Software Foundation
4 #
5 # Author: Nikos Mavrogiannopoulos
6 #
7 # This file is part of GNUTLS.
8 #
9 # GNUTLS is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU General Public License as published by the
11 # Free Software Foundation; either version 3 of the License, or (at
12 # your option) any later version.
13 #
14 # GNUTLS is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 # General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with GNUTLS; if not, write to the Free Software Foundation,
21 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22
23 srcdir="${srcdir:-.}"
24 SERV="${SERV:-../../src/gnutls-serv} -q"
25 CLI="${CLI:-../../src/gnutls-cli}"
26 PORT="${PORT:-5558}"
27 unset RETCODE
28
29 fail() {
30    echo "Failure: $1" >&2
31    RETCODE=${RETCODE:-${2:-1}}
32 }
33
34 echo "Checking Safe renegotiation"
35
36 $SERV -p $PORT --echo --priority NORMAL:+ANON-DH --dhparams params.dh >/dev/null 2>&1 & 
37
38 # give the server a chance to initialize
39 sleep 2
40
41 $CLI -p $PORT localhost --rehandshake --priority NORMAL:+ANON-DH </dev/null >/dev/null 2>&1 || \
42   fail "1. Safe rehandshake should have succeeded!"
43
44 $CLI -p $PORT localhost --rehandshake --priority NORMAL:+ANON-DH:%UNSAFE_RENEGOTIATION </dev/null >/dev/null 2>&1 || \
45   fail "2. Unsafe rehandshake should have succeeded!"
46
47 $CLI -p $PORT localhost --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION </dev/null >/dev/null 2>&1 || \
48   fail "3. Unsafe negotiation should have succeeded!"
49
50 $CLI -p $PORT localhost --rehandshake --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION </dev/null >/dev/null 2>&1 && \
51   fail "4. Unsafe renegotiation should have failed!"
52
53 kill %1
54 wait
55
56 $SERV -p $PORT --echo --priority NORMAL:+ANON-DH:%INITIAL_SAFE_RENEGOTIATION --dhparams params.dh >/dev/null 2>&1 &
57
58 # give the server a chance to initialize
59 sleep 2
60
61 $CLI -p $PORT localhost --rehandshake --priority NORMAL:+ANON-DH </dev/null >/dev/null 2>&1 || \
62   fail "5. Safe rehandshake should have succeeded!"
63
64 $CLI -p $PORT localhost --rehandshake --priority NORMAL:+ANON-DH:%UNSAFE_RENEGOTIATION </dev/null >/dev/null 2>&1 || \
65   fail "6. Unsafe rehandshake should have succeeded!"
66
67 $CLI -p $PORT localhost --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION </dev/null >/dev/null 2>&1 && \
68   fail "7. Unsafe negotiation should have failed!"
69
70 $CLI -p $PORT localhost --rehandshake --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION </dev/null >/dev/null 2>&1 && \
71   fail "8. Unsafe renegotiation should have failed!"
72
73 kill %1
74 wait
75
76 $SERV -p $PORT --echo --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION --dhparams params.dh >/dev/null 2>&1 &
77
78 # give the server a chance to initialize
79 sleep 2
80
81 $CLI -p $PORT localhost --priority NORMAL:+ANON-DH </dev/null >/dev/null 2>&1 && \
82   fail "9. Initial connection should have failed!"
83
84 $CLI -p $PORT localhost --priority NORMAL:+ANON-DH:%UNSAFE_RENEGOTIATION </dev/null >/dev/null 2>&1 || \
85   fail "10. Unsafe connection should have succeeded!"
86
87 $CLI -p $PORT localhost --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION </dev/null >/dev/null 2>&1 || \
88   fail "11. Unsafe negotiation should have succeeded!"
89
90 $CLI -p $PORT localhost --rehandshake --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION </dev/null >/dev/null 2>&1 || \
91   fail "12. Unsafe renegotiation should have succeeded!"
92
93 kill %1
94 wait
95
96 exit ${RETCODE:-0}