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


Ignore:
Timestamp:
09/08/06 06:48:59 (13 years ago)
Author:
nakiki
Comment:

--

Legend:

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

    v4 v5  
    121121}}} 
    122122 * 証明書はTLSLiteのサンプルにあるものです。 
     123 
     124== TLSクライアント == 
     125{{{ 
     126#!python 
     127# -*- coding: utf-8 -*- 
     128#!/usr/bin/python 
     129 
     130import socket 
     131import tlslite.api as tls 
     132import sys 
     133 
     134DST = ('localhost', 3746) 
     135 
     136# 証明書を使った場合の例 
     137def connect(sockaddr): 
     138  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
     139  sock.connect(sockaddr) 
     140  sock.settimeout(10) 
     141  conn = tls.TLSConnection(sock) 
     142  conn.closeSocket = True 
     143  s = open("./clientX509Cert.pem").read() 
     144  x509 = tls.X509() 
     145  x509.parse(s) 
     146  print "fingerprint=", x509.getFingerprint() 
     147  certChain = tls.X509CertChain([x509]) 
     148  s = open("./clientX509Key.pem").read() 
     149  privateKey = tls.parsePEMKey(s, private=True) 
     150  # 提示されるサーバの証明書のfingerprint 
     151  checker = tls.Checker(x509Fingerprint= '8b8a01e15a2095da731a9b864a30ae272d0381 
     15280') 
     153  conn.handshakeClientCert(certChain = certChain, privateKey = privateKey, 
     154    checker = checker) 
     155  return conn 
     156 
     157conn = connect(DST) 
     158rfile = conn.makefile('rb') 
     159while 1: 
     160  print '> ', 
     161  line = sys.stdin.readline() 
     162  if len(line) == 0: 
     163    conn.close() 
     164    print 
     165    break 
     166  conn.write(line) 
     167  line = rfile.readline() 
     168  if len(line) == 0: 
     169    conn.close() 
     170    print 'EOF' 
     171    break 
     172  sys.stdout.write(line) 
     173}}}