Chromium Code Reviews| Index: net/tools/testserver/testserver.py |
| diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py |
| index 6e85b4f64083f24a3b0b1629338f5a28584fdbc9..57bf09ffe77b0666158454c85b3215405065d918 100755 |
| --- a/net/tools/testserver/testserver.py |
| +++ b/net/tools/testserver/testserver.py |
| @@ -135,7 +135,8 @@ class HTTPSServer(tlslite.api.TLSSocketServerMixIn, |
| def __init__(self, server_address, request_hander_class, pem_cert_and_key, |
| ssl_client_auth, ssl_client_cas, ssl_bulk_ciphers, |
| - record_resume_info, tls_intolerant, signed_cert_timestamps): |
| + record_resume_info, tls_intolerant, |
| + signed_cert_timestamps, ocsp_response): |
| self.cert_chain = tlslite.api.X509CertChain().parseChain(pem_cert_and_key) |
| # Force using only python implementation - otherwise behavior is different |
| # depending on whether m2crypto Python module is present (error is thrown |
| @@ -148,6 +149,7 @@ class HTTPSServer(tlslite.api.TLSSocketServerMixIn, |
| self.ssl_client_cas = [] |
| self.tls_intolerant = tls_intolerant |
| self.signed_cert_timestamps = signed_cert_timestamps |
| + self.ocsp_response = ocsp_response |
| for ca_file in ssl_client_cas: |
| s = open(ca_file).read() |
| @@ -181,7 +183,8 @@ class HTTPSServer(tlslite.api.TLSSocketServerMixIn, |
| reqCAs=self.ssl_client_cas, |
| tlsIntolerant=self.tls_intolerant, |
| signedCertTimestamps= |
| - self.signed_cert_timestamps) |
| + self.signed_cert_timestamps, |
| + ocspResponse = self.ocsp_response) |
| tlsConnection.ignoreAbruptClose = True |
| return True |
| except tlslite.api.TLSAbruptCloseError: |
| @@ -1940,14 +1943,20 @@ class ServerRunner(testserver_base.TestServerRunner): |
| raise testserver_base.OptionError( |
| 'specified trusted client CA file not found: ' + ca_cert + |
| ' exiting...') |
| + |
| + stapled_ocsp_response = None |
| + if self.__ocsp_server and self.options.staple_ocsp_response: |
| + stapled_ocsp_response = self.__ocsp_server.ocsp_response |
| + |
| server = HTTPSServer((host, port), TestPageHandler, pem_cert_and_key, |
| self.options.ssl_client_auth, |
| self.options.ssl_client_ca, |
| self.options.ssl_bulk_cipher, |
| self.options.record_resume, |
| self.options.tls_intolerant, |
| - self.options.signed_cert_timestamps.decode( |
| - "base64")) |
| + self.options.signed_cert_timestamps_tls_ext.decode( |
| + "base64"), |
| + stapled_ocsp_response) |
| print 'HTTPS server started on %s:%d...' % (host, server.server_port) |
| else: |
| server = HTTPServer((host, port), TestPageHandler) |
| @@ -2085,13 +2094,19 @@ class ServerRunner(testserver_base.TestServerRunner): |
| 'aborted. 2 means TLS 1.1 or higher will be ' |
| 'aborted. 3 means TLS 1.2 or higher will be ' |
| 'aborted.') |
| - self.option_parser.add_option('--signed-cert-timestamps', |
| - dest='signed_cert_timestamps', |
| + self.option_parser.add_option('--signed-cert-timestamps-tls-ext', |
| + dest='signed_cert_timestamps_tls_ext', |
|
wtc
2013/12/10 04:23:17
Nit: it seems that we don't need to add "-tls-ext"
ekasper
2013/12/10 14:45:20
Ditto - being explicit doesn't hurt.
|
| default='', |
| help='Base64 encoded SCT list. If set, ' |
| 'server will respond with a ' |
| 'signed_certificate_timestamp TLS extension ' |
| 'whenever the client supports it.') |
| + self.option_parser.add_option('--staple-ocsp-response', |
| + dest='staple_ocsp_response', |
| + default=False, action='store_true', |
| + help='If set, server will staple the OCSP ' |
| + 'response whenever OCSP is on and the client ' |
| + 'supports OCSP stapling.') |
| self.option_parser.add_option('--https-record-resume', |
| dest='record_resume', const=True, |
| default=False, action='store_const', |