diff options
Diffstat (limited to 'scripts/http-server.py')
-rw-r--r-- | scripts/http-server.py | 70 |
1 files changed, 21 insertions, 49 deletions
diff --git a/scripts/http-server.py b/scripts/http-server.py index 4417bf84..8c302b9b 100644 --- a/scripts/http-server.py +++ b/scripts/http-server.py @@ -1,54 +1,26 @@ # $Id$ -import BaseHTTPServer, tlslite.api - -class requestHandler(BaseHTTPServer.BaseHTTPRequestHandler): - - def do_POST(self): - echo = "" - for h in self.headers: - echo += "%s: %s\n" % (h, self.headers[h]) - self.query_string = self.rfile.read(int(self.headers["Content-Length"])) - echo += self.query_string - - if False: - f = open("http-server.log", "a") - f.write(echo) - f.close() - - self.send_response(200) - self.send_header("Content-Type", "application/x-wombat") - self.end_headers() - - self.wfile.write(echo) - -certChain = [] -for file in ("biz-certs/Carol-EE.cer", "biz-certs/Carol-CA.cer"): - f = open(file, "r") - x509 = tlslite.api.X509() - x509.parse(f.read()) +import rpki.https, tlslite.api + +if False: + certInfo = rpki.https.CertInfo("Carol") +else: + certInfo = rpki.https.CertInfo() + + certChain = [] + for file in ("biz-certs/Carol-EE.cer", "biz-certs/Carol-CA.cer"): + f = open(file, "r") + x509 = tlslite.api.X509() + x509.parse(f.read()) + f.close() + certChain.append(x509) + certInfo.certChain = tlslite.api.X509CertChain(certChain) + + f = open("biz-certs/Carol-EE.key", "r") + certInfo.privateKey = tlslite.api.parsePEMKey(f.read(), private=True) f.close() - certChain.append(x509) -certChain = tlslite.api.X509CertChain(certChain) - -f = open("biz-certs/Carol-EE.key", "r") -privateKey = tlslite.api.parsePEMKey(f.read(), private=True) -f.close() - -sessionCache = tlslite.api.SessionCache() - -class httpServer(tlslite.api.TLSSocketServerMixIn, BaseHTTPServer.HTTPServer): - def handshake(self, tlsConnection): - try: - tlsConnection.handshakeServer(certChain=certChain, - privateKey=privateKey, - sessionCache=sessionCache) - tlsConnection.ignoreAbruptClose = True - return True - except tlslite.api.TLSError, error: - print "TLS handshake failure:", str(error) - return False +def handler(self, query): + return 200, "I got:\n" + query -httpd = httpServer(("", 4433), requestHandler) -httpd.serve_forever() +rpki.https.server(certInfo=certInfo, handler=handler) |