OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2013 The Chromium Authors. All rights reserved. | 2 # Copyright 2013 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """This is a simple HTTP/FTP/TCP/UDP/BASIC_AUTH_PROXY/WEBSOCKET server used for | 6 """This is a simple HTTP/FTP/TCP/UDP/BASIC_AUTH_PROXY/WEBSOCKET server used for |
7 testing Chrome. | 7 testing Chrome. |
8 | 8 |
9 It supports several test URLs, as specified by the handlers in TestPageHandler. | 9 It supports several test URLs, as specified by the handlers in TestPageHandler. |
10 By default, it listens on an ephemeral port and sends the port number back to | 10 By default, it listens on an ephemeral port and sends the port number back to |
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
334 self.SlowServerHandler, | 334 self.SlowServerHandler, |
335 self.ChunkedServerHandler, | 335 self.ChunkedServerHandler, |
336 self.NoContentHandler, | 336 self.NoContentHandler, |
337 self.ServerRedirectHandler, | 337 self.ServerRedirectHandler, |
338 self.CrossSiteRedirectHandler, | 338 self.CrossSiteRedirectHandler, |
339 self.ClientRedirectHandler, | 339 self.ClientRedirectHandler, |
340 self.GetSSLSessionCacheHandler, | 340 self.GetSSLSessionCacheHandler, |
341 self.SSLManySmallRecords, | 341 self.SSLManySmallRecords, |
342 self.GetChannelID, | 342 self.GetChannelID, |
343 self.GetTokenBindingEKM, | 343 self.GetTokenBindingEKM, |
344 self.ForwardTokenBindingHeader, | |
344 self.GetClientCert, | 345 self.GetClientCert, |
345 self.ClientCipherListHandler, | 346 self.ClientCipherListHandler, |
346 self.CloseSocketHandler, | 347 self.CloseSocketHandler, |
347 self.DefaultResponseHandler] | 348 self.DefaultResponseHandler] |
348 post_handlers = [ | 349 post_handlers = [ |
349 self.EchoTitleHandler, | 350 self.EchoTitleHandler, |
350 self.EchoHandler, | 351 self.EchoHandler, |
351 self.PostOnlyFileHandler, | 352 self.PostOnlyFileHandler, |
352 self.EchoMultipartPostHandler] + get_handlers | 353 self.EchoMultipartPostHandler] + get_handlers |
353 put_handlers = [ | 354 put_handlers = [ |
(...skipping 1171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1525 return False | 1526 return False |
1526 | 1527 |
1527 ekm = self.server.tlsConnection.exportKeyingMaterial( | 1528 ekm = self.server.tlsConnection.exportKeyingMaterial( |
1528 "EXPORTER-Token-Binding", "", False, 32) | 1529 "EXPORTER-Token-Binding", "", False, 32) |
1529 self.send_response(200) | 1530 self.send_response(200) |
1530 self.send_header('Content-Type', 'application/octet-stream') | 1531 self.send_header('Content-Type', 'application/octet-stream') |
1531 self.end_headers() | 1532 self.end_headers() |
1532 self.wfile.write(ekm) | 1533 self.wfile.write(ekm) |
1533 return True | 1534 return True |
1534 | 1535 |
1536 def ForwardTokenBindingHeader(self): | |
1537 """Send a redirect that sets the Include-Referer-Token-Binding-ID | |
1538 header.""" | |
1539 | |
1540 test_name = '/forward-tokbind' | |
1541 if not self._ShouldHandleRequest(test_name): | |
1542 return False | |
1543 | |
1544 query_char = self.path.find('?') | |
1545 if query_char < 0 or len(self.path) <= query_char + 1: | |
1546 self.sendRedirectHelp(test_name) | |
1547 return True | |
1548 dest = urllib.unquote(self.path[query_char + 1:]) | |
1549 | |
1550 self.send_response(302) | |
1551 self.send_header('Location', dest) | |
1552 self.send_header('Include-Referer-Token-Binding-ID', 'true') | |
1553 self.send_header('Connection', 'close') | |
davidben
2016/03/15 22:49:56
Why this?
nharper
2016/03/16 17:49:22
Copypasta. Removed.
| |
1554 self.end_headers() | |
1555 return True | |
1556 | |
1535 def GetClientCert(self): | 1557 def GetClientCert(self): |
1536 """Send a reply whether a client certificate was provided.""" | 1558 """Send a reply whether a client certificate was provided.""" |
1537 | 1559 |
1538 if not self._ShouldHandleRequest('/client-cert'): | 1560 if not self._ShouldHandleRequest('/client-cert'): |
1539 return False | 1561 return False |
1540 | 1562 |
1541 self.send_response(200) | 1563 self.send_response(200) |
1542 self.send_header('Content-Type', 'text/plain') | 1564 self.send_header('Content-Type', 'text/plain') |
1543 self.end_headers() | 1565 self.end_headers() |
1544 | 1566 |
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2177 'an anonymous user.') | 2199 'an anonymous user.') |
2178 self.option_parser.add_option('--disable-channel-id', action='store_true') | 2200 self.option_parser.add_option('--disable-channel-id', action='store_true') |
2179 self.option_parser.add_option('--disable-extended-master-secret', | 2201 self.option_parser.add_option('--disable-extended-master-secret', |
2180 action='store_true') | 2202 action='store_true') |
2181 self.option_parser.add_option('--token-binding-params', action='append', | 2203 self.option_parser.add_option('--token-binding-params', action='append', |
2182 default=[], type='int') | 2204 default=[], type='int') |
2183 | 2205 |
2184 | 2206 |
2185 if __name__ == '__main__': | 2207 if __name__ == '__main__': |
2186 sys.exit(ServerRunner().main()) | 2208 sys.exit(ServerRunner().main()) |
OLD | NEW |