/ src / network / https.py.bak
https.py.bak
 1  import asyncore
 2  
 3  from http import HTTPClient
 4  from tls import TLSHandshake
 5  
 6  """
 7  self.sslSock = ssl.wrap_socket(
 8      self.sock,
 9      keyfile=os.path.join(paths.codePath(), 'sslkeys', 'key.pem'),
10      certfile=os.path.join(paths.codePath(), 'sslkeys', 'cert.pem'),
11      server_side=not self.initiatedConnection,
12      ssl_version=ssl.PROTOCOL_TLSv1,
13      do_handshake_on_connect=False,
14      ciphers='AECDH-AES256-SHA')
15  """
16  
17  
18  class HTTPSClient(HTTPClient, TLSHandshake):
19      def __init__(self, host, path):
20          if not hasattr(self, '_map'):
21              asyncore.dispatcher.__init__(self)
22          self.tlsDone = False
23          """
24          TLSHandshake.__init__(
25              self,
26              address=(host, 443),
27              certfile='/home/shurdeek/src/PyBitmessage/sslsrc/keys/cert.pem',
28              keyfile='/home/shurdeek/src/PyBitmessage/src/sslkeys/key.pem',
29              server_side=False,
30              ciphers='AECDH-AES256-SHA')
31          """
32          HTTPClient.__init__(self, host, path, connect=False)
33          TLSHandshake.__init__(self, address=(host, 443), server_side=False)
34  
35      def handle_connect(self):
36          TLSHandshake.handle_connect(self)
37  
38      def handle_close(self):
39          if self.tlsDone:
40              HTTPClient.close(self)
41          else:
42              TLSHandshake.close(self)
43  
44      def readable(self):
45          if self.tlsDone:
46              return HTTPClient.readable(self)
47          else:
48              return TLSHandshake.readable(self)
49  
50      def handle_read(self):
51          if self.tlsDone:
52              HTTPClient.handle_read(self)
53          else:
54              TLSHandshake.handle_read(self)
55  
56      def writable(self):
57          if self.tlsDone:
58              return HTTPClient.writable(self)
59          else:
60              return TLSHandshake.writable(self)
61  
62      def handle_write(self):
63          if self.tlsDone:
64              HTTPClient.handle_write(self)
65          else:
66              TLSHandshake.handle_write(self)
67  
68  
69  if __name__ == "__main__":
70      client = HTTPSClient('anarchy.economicsofbitcoin.com', '/')
71      asyncore.loop()