| 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.end_headers() | 
|  | 1554     return True | 
|  | 1555 | 
| 1535   def GetClientCert(self): | 1556   def GetClientCert(self): | 
| 1536     """Send a reply whether a client certificate was provided.""" | 1557     """Send a reply whether a client certificate was provided.""" | 
| 1537 | 1558 | 
| 1538     if not self._ShouldHandleRequest('/client-cert'): | 1559     if not self._ShouldHandleRequest('/client-cert'): | 
| 1539       return False | 1560       return False | 
| 1540 | 1561 | 
| 1541     self.send_response(200) | 1562     self.send_response(200) | 
| 1542     self.send_header('Content-Type', 'text/plain') | 1563     self.send_header('Content-Type', 'text/plain') | 
| 1543     self.end_headers() | 1564     self.end_headers() | 
| 1544 | 1565 | 
| (...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2177                                   'an anonymous user.') | 2198                                   'an anonymous user.') | 
| 2178     self.option_parser.add_option('--disable-channel-id', action='store_true') | 2199     self.option_parser.add_option('--disable-channel-id', action='store_true') | 
| 2179     self.option_parser.add_option('--disable-extended-master-secret', | 2200     self.option_parser.add_option('--disable-extended-master-secret', | 
| 2180                                   action='store_true') | 2201                                   action='store_true') | 
| 2181     self.option_parser.add_option('--token-binding-params', action='append', | 2202     self.option_parser.add_option('--token-binding-params', action='append', | 
| 2182                                   default=[], type='int') | 2203                                   default=[], type='int') | 
| 2183 | 2204 | 
| 2184 | 2205 | 
| 2185 if __name__ == '__main__': | 2206 if __name__ == '__main__': | 
| 2186   sys.exit(ServerRunner().main()) | 2207   sys.exit(ServerRunner().main()) | 
| OLD | NEW | 
|---|