https.py
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()