Changes between Version 3 and Version 4 of TLSLiteの短いソースコード集


Ignore:
Timestamp:
09/08/06 06:47:36 (13 years ago)
Author:
nakiki
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TLSLiteの短いソースコード集

    v3 v4  
    7171 * 16バイトブロックであることに注意 
    7272 * 安全性を保障するには共有鍵は秘密にする必要がある。 
     73== TLSサーバ == 
     74{{{ 
     75#!python 
     76# -*- coding: utf-8 -*- 
     77#!/usr/bin/python 
     78 
     79import socket 
     80import SocketServer as ss 
     81import tlslite.api as tls 
     82 
     83# 証明書を使った場合の例 
     84class Handler(ss.StreamRequestHandler): 
     85  def setup(self): 
     86    self.connection = tls.TLSConnection(self.request) 
     87    self.connection.closeSocket = True 
     88    s = open("./serverX509Cert.pem").read() 
     89    x509 = tls.X509() 
     90    x509.parse(s) 
     91    certChain = tls.X509CertChain([x509]) 
     92    s = open("./serverX509Key.pem").read() 
     93    privateKey = tls.parsePEMKey(s, private=True) 
     94 
     95    settings = tls.HandshakeSettings() 
     96    settings.cipherNames = ["aes128"] 
     97    # 提示されるクライアントの証明書のfingerprint 
     98    checker = tls.Checker(x509Fingerprint= 'cbfef53d18298d7a432720a39232f0ce22e9 
     99a30a') 
     100    self.connection.handshakeServer(certChain=certChain, 
     101      privateKey =privateKey, checker = checker, reqCert = True, 
     102      settings = settings) 
     103    self.rfile = self.connection.makefile('rb', self.rbufsize) 
     104    self.wfile = self.connection.makefile('wb', self.wbufsize) 
     105 
     106  def handle(self): 
     107    print 'handle' 
     108    while 1: 
     109      line = self.rfile.readline() 
     110      if len(line) == 0: 
     111        return 
     112      self.wfile.write(line) 
     113 
     114class Server(ss.ThreadingTCPServer): 
     115  allow_reuse_address = 1 
     116  daemon_threads = 1 
     117 
     118server = Server(('localhost', 3746), Handler) 
     119print 'listening:', server.socket.getsockname() 
     120server.serve_forever() 
     121}}} 
     122 * 証明書はTLSLiteのサンプルにあるものです。