| Index: net/tools/testserver/testserver.py
|
| diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py
|
| index ba1fd662abf95c98bfa10f838068484b87a1d858..ad1a57d0e4f606294bd1e8801ca0e612107d5069 100755
|
| --- a/net/tools/testserver/testserver.py
|
| +++ b/net/tools/testserver/testserver.py
|
| @@ -336,6 +336,7 @@ class TestPageHandler(testserver_base.BasePageHandler):
|
| self.GetSSLSessionCacheHandler,
|
| self.SSLManySmallRecords,
|
| self.GetChannelID,
|
| + self.GetClientCert,
|
| self.ClientCipherListHandler,
|
| self.CloseSocketHandler,
|
| self.RangeResetHandler,
|
| @@ -1512,6 +1513,24 @@ class TestPageHandler(testserver_base.BasePageHandler):
|
| self.wfile.write(hashlib.sha256(channel_id).digest().encode('base64'))
|
| return True
|
|
|
| + def GetClientCert(self):
|
| + """Send a reply whether a client certificate was provided."""
|
| +
|
| + if not self._ShouldHandleRequest('/client-cert'):
|
| + return False
|
| +
|
| + self.send_response(200)
|
| + self.send_header('Content-Type', 'text/plain')
|
| + self.end_headers()
|
| +
|
| + cert_chain = self.server.tlsConnection.session.clientCertChain
|
| + if cert_chain != None:
|
| + self.wfile.write('got client cert with fingerprint: ' +
|
| + cert_chain.getFingerprint())
|
| + else:
|
| + self.wfile.write('got no client cert')
|
| + return True
|
| +
|
| def ClientCipherListHandler(self):
|
| """Send a reply containing the cipher suite list that the client
|
| provided. Each cipher suite value is serialized in decimal, followed by a
|
|
|