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()
Esempio n. 3
0
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()