def __init__(self, addr, port, auth, steamid, auth_key_id, client_id, on_app_change_callback=None, disconnect_callback=None): #connect via ssl_psk self._addr = addr self._port = port s_tmp = socket.socket() s_tmp.connect((addr, port)) self._psk = auth.decode('hex') self._s = ssl_psk.wrap_socket(s_tmp, psk=self._psk, ciphers='PSK-AES128-CBC-SHA', ssl_version=ssl.PROTOCOL_TLSv1_2) self._s.settimeout(60.0) self._disconnect_callback = disconnect_callback self._on_app_change_callback = on_app_change_callback #set auth vars and others self._steamid = steamid self._auth_key_id = auth_key_id self._client_id = client_id self.ip = addr super(ControlClient, self).__init__()
def reconnect(self, client_id): if not self._running: return self._running = False self._s.close() self._t.join() self._t_ping.join() self.authenticated = False #connect via ssl_psk s_tmp = socket.socket() s_tmp.connect((self._addr, self._port)) self._s = ssl_psk.wrap_socket(s_tmp, psk=self._psk, ciphers='PSK-AES128-CBC-SHA', ssl_version=ssl.PROTOCOL_TLSv1_2) self._s.settimeout(60.0) self._client_id = client_id self.start()
import ssl_psk import socket psk = 'c033f52671c61c8128f7f8a40be88038bcf2b07a6eb3095c36e3759f0cf40837'.decode('hex') addr = ('localhost', 6000) srv = bool(sys.argv[1:] and sys.argv[1] == '--server') s = socket.socket() if srv: s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind(addr) s.listen(1) s, _ = s.accept() else: s.connect(addr) sock = ssl_psk.wrap_socket(s, psk=psk, ciphers='PSK-AES256-CBC-SHA', ssl_version=ssl.PROTOCOL_TLSv1, server_side=srv,) if srv: data = sock.recv(10) sock.sendall(data.upper()) else: sock.sendall('abcdefghi\n') print sock.recv(10) sock.shutdown(socket.SHUT_RDWR) s.close()