|
103 | 103 | 'proxy.config.ssl.server.session_ticket.enable': 1, |
104 | 104 | }) |
105 | 105 |
|
| 106 | + |
| 107 | +def check_session(ev, test): |
| 108 | + retval = False |
| 109 | + f = open(test.GetContent(ev), 'r') |
| 110 | + err = "Session ids match" |
| 111 | + if not f: |
| 112 | + err = "Failed to open {0}".format(openssl_output) |
| 113 | + return (retval, "Check that session ids match", err) |
| 114 | + |
| 115 | + content = f.read() |
| 116 | + match = re.findall('Session-ID: ([0-9A-F]+)', content) |
| 117 | + |
| 118 | + if match: |
| 119 | + if all(i == j for i, j in zip(match, match[1:])): |
| 120 | + err = "{0} reused successfully {1} times".format(match[0], len(match) - 1) |
| 121 | + retval = True |
| 122 | + else: |
| 123 | + err = "Session is not being reused as expected" |
| 124 | + else: |
| 125 | + err = "Didn't find session id" |
| 126 | + return (retval, "Check that session ids match", err) |
| 127 | + |
| 128 | + |
106 | 129 | tr = Test.AddTestRun("TLSv1.2 Session ID") |
107 | 130 | tr.Command = \ |
108 | 131 | 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_out {1} && ' \ |
| 132 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \ |
| 133 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \ |
| 134 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \ |
| 135 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \ |
109 | 136 | 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1}' \ |
110 | 137 | .format(ts1.Variables.ssl_port, os.path.join(Test.RunDirectory, 'sess.dat')) |
111 | 138 | tr.ReturnCode = 0 |
112 | 139 | tr.Processes.Default.StartBefore(server) |
113 | 140 | tr.Processes.Default.StartBefore(ts1) |
114 | | -tr.Processes.Default.Streams.All = Testers.ContainsExpression('Reused, TLSv', '') |
115 | | -tr.Processes.Default.Streams.All += Testers.ContainsExpression('Protocol : TLSv1.2', '') |
| 141 | +tr.Processes.Default.Streams.All.Content = Testers.Lambda(check_session) |
116 | 142 | tr.StillRunningAfter = server |
117 | 143 |
|
118 | | -tr = Test.AddTestRun("TLSv1.2 Session Ticket") |
119 | | -tr.Command = \ |
| 144 | +tr1 = Test.AddTestRun("TLSv1.2 Session Ticket") |
| 145 | +tr1.Command = \ |
120 | 146 | 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_out {1} && ' \ |
| 147 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_in {1} && ' \ |
| 148 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_in {1} && ' \ |
| 149 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_in {1} && ' \ |
| 150 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_in {1} && ' \ |
121 | 151 | 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_in {1}' \ |
122 | 152 | .format(ts2.Variables.ssl_port, os.path.join(Test.RunDirectory, 'sess.dat')) |
123 | | -tr.ReturnCode = 0 |
124 | | -tr.Processes.Default.StartBefore(ts2) |
125 | | -tr.Processes.Default.Streams.All = Testers.ContainsExpression('Reused, TLSv', '') |
126 | | -tr.Processes.Default.Streams.All += Testers.ContainsExpression('Protocol : TLSv1.2', '') |
127 | | -tr.StillRunningAfter = server |
| 153 | +tr1.ReturnCode = 0 |
| 154 | +tr1.Processes.Default.StartBefore(ts2) |
| 155 | +tr1.Processes.Default.Streams.All.Content = Testers.Lambda(check_session) |
| 156 | +tr1.StillRunningAfter = server |
128 | 157 |
|
129 | | -tr = Test.AddTestRun("Disabled Session Cache") |
130 | | -tr.Command = \ |
| 158 | +tr2 = Test.AddTestRun("Disabled Session Cache") |
| 159 | +tr2.Command = \ |
131 | 160 | 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_out {1} && ' \ |
| 161 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \ |
| 162 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \ |
| 163 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \ |
| 164 | + 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \ |
132 | 165 | 'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1}' \ |
133 | 166 | .format(ts3.Variables.ssl_port, os.path.join(Test.RunDirectory, 'sess.dat')) |
134 | | -tr.ReturnCode = 0 |
135 | | -tr.Processes.Default.StartBefore(ts3) |
136 | | -tr.Processes.Default.Streams.All = Testers.ExcludesExpression('Reused', '') |
| 167 | +tr2.ReturnCode = 0 |
| 168 | +tr2.Processes.Default.StartBefore(ts3) |
| 169 | +tr2.Processes.Default.Streams.All = Testers.ExcludesExpression('Reused', '') |
0 commit comments