aboutsummaryrefslogtreecommitdiff
path: root/scripts/http-server.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2007-08-08 16:20:27 +0000
committerRob Austein <sra@hactrn.net>2007-08-08 16:20:27 +0000
commit7a4d92a49f2f270e6adada0fec4c3ca994d1b96b (patch)
treecd5a98319b235d576609008d4afb9b8526ff283a /scripts/http-server.py
parent9be98cafee7a8995e05af666c13ae97e33154d58 (diff)
Checkpoint
svn path=/scripts/http-client.py; revision=843
Diffstat (limited to 'scripts/http-server.py')
-rw-r--r--scripts/http-server.py70
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)