root/python/TLSLite/shared/server.py

リビジョン 29, 1.0 kB (コミッタ: nakiki, コミット時期: 2 年 前)

--

  • svn:executable 属性の設定値: *
Line 
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
3
4 import socket
5 import SocketServer as ss
6 import tlslite.api as tls
7
8 sharedKeyDB = tls.SharedKeyDB()
9 sharedKeyDB.create()
10 sharedKeyDB['nakiki'] = 'nakikinakiki'
11
12 # 共有鍵を使った例
13 class Handler(ss.StreamRequestHandler):
14   def setup(self):
15     self.connection = tls.TLSConnection(self.request)
16     self.connection.closeSocket = True
17     settings = tls.HandshakeSettings()
18     settings.cipherNames = ["aes128"]
19     self.connection.handshakeServer(sharedKeyDB = sharedKeyDB,
20       settings = settings)
21     self.rfile = self.connection.makefile('rb', self.rbufsize)
22     self.wfile = self.connection.makefile('wb', self.wbufsize)
23
24   def handle(self):
25     print 'handle'
26     while 1:
27       line = self.rfile.readline()
28       if len(line) == 0:
29         return
30       self.wfile.write(line)
31
32 class Server(ss.ThreadingTCPServer):
33   allow_reuse_address = 1
34   daemon_threads = 1
35
36 server = Server(('localhost', 3747), Handler)
37 print 'listening:', server.socket.getsockname()
38 server.serve_forever()
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。