#!/usr/bin/python # -*- coding: utf-8 -*- import socket import SocketServer as ss import tlslite.api as tls sharedKeyDB = tls.SharedKeyDB() sharedKeyDB.create() sharedKeyDB['nakiki'] = 'nakikinakiki' # 共有鍵を使った例 class Handler(ss.StreamRequestHandler): def setup(self): self.connection = tls.TLSConnection(self.request) self.connection.closeSocket = True settings = tls.HandshakeSettings() settings.cipherNames = ["aes128"] self.connection.handshakeServer(sharedKeyDB = sharedKeyDB, settings = settings) self.rfile = self.connection.makefile('rb', self.rbufsize) self.wfile = self.connection.makefile('wb', self.wbufsize) def handle(self): print 'handle' while 1: line = self.rfile.readline() if len(line) == 0: return self.wfile.write(line) class Server(ss.ThreadingTCPServer): allow_reuse_address = 1 daemon_threads = 1 server = Server(('localhost', 3747), Handler) print 'listening:', server.socket.getsockname() server.serve_forever()