net/testserver.py: Add handler to reply with client auth status.
BUG=514575
Review URL: https://codereview.chromium.org/1275853003
Cr-Original-Commit-Position: refs/heads/master@{#342337}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1300c883029570b4ab83ac12e340e9500e54c7e3
diff --git a/testserver.py b/testserver.py
index ba1fd66..ad1a57d 100755
--- a/testserver.py
+++ b/testserver.py
@@ -336,6 +336,7 @@
self.GetSSLSessionCacheHandler,
self.SSLManySmallRecords,
self.GetChannelID,
+ self.GetClientCert,
self.ClientCipherListHandler,
self.CloseSocketHandler,
self.RangeResetHandler,
@@ -1512,6 +1513,24 @@
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