Client Module¶
Клиентское приложение для обмена сообщениями. Поддерживает отправку сообщений пользователям. Использует механизм сквозного шифрования, с помощью алгоритма шифрования RSA для публичных и приватных ключей и с помощью алгоритма AES для симметричных ключей. В папке «secret» хранятся публичные и приватные ключи пользователей
Использование
Модуль поддерживает аргументы командной строки:
-p - Порт, к которому будет подключаться клиент
-a - Адрес, к которому будет подключаться клиент
Примеры использования:
Запуск клиента к серверу на порту 8000 с адресом «localhost»:
python client.py
Запуск клиента к серверу на выбранном порту и адресе:
python client.py -p 8080 -a 172.107.198.234
client_ui.py¶
- class frontend.client_ui.AdminWidget(parent=None)¶
Класс AdminWidget является ui, который отображает панель администратора
- class frontend.client_ui.LoginWidget(parent=None)¶
Класс LoginWidget является ui, который отображает окно авторизации пользователя
- class frontend.client_ui.MessageUserWidget(parent=None)¶
Класс MessageUserWidget является ui, который отображает окно переписки с пользователем
- class frontend.client_ui.MessageWidget(parent=None)¶
- class frontend.client_ui.RegisterWidget(parent=None)¶
Класс RegisterWidget является ui, который отображает окно регистрации пользователя
- class frontend.client_ui.SearchContactWidget(parent=None)¶
Класс SearchContactWidget является ui, который осуществляет поиск контактов в базе данных сервера и клиента
- class frontend.client_ui.ServerGUI¶
Класс ServerGUI является основным ui, который связывает весь функционал других модулей ui
client.py¶
- class frontend.client.ClientRecipient(sock, account_name, database)¶
- run()¶
Method representing the thread’s activity.
You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.
- class frontend.client.ClientSender(sock, account_name, token, database)¶
- run()¶
Method representing the thread’s activity.
You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.
- frontend.client.authorization(login, password, server)¶
Фукнция авторизирует пользователя на сервере. Создается приватный и публичный ключ пользователя. Приватный ключ сохраняется в файл. Публичный сохраняется в базу данных клиента. Также функция отправляет запрос на получение публичного ключа сервера и сохраняет его в базу данных. :param login: :param password: :param server: :return:
- frontend.client.registration(server, login, password)¶
Функция регистрирует новый аккаунт для пользователя. Генерируется приватный, публичный и симметричный ключ пользователя для шифрования данных и дальнейшей их передачи. Данные пока никуда не сохраняются. :param server: :param login: :param password: :return:
metaclasses.py¶
utils_client.py¶
- frontend.utils_client.deserialization_message(message)¶
Десериализация сообщения
- frontend.utils_client.encrypted_symmetric_key(message, sym_key)¶
Функция шифрует сообщение. Принимает сообщение и симметричный ключ в строковом виде. Возвращает шифрованное сообщение в бинарном виде :param message: :param sym_key: :return:
- frontend.utils_client.generic_public_and_privat_key_client()¶
Генерируем публичный и приватный ключи для шифровки сообщения и возвращаем их в строковом формате
- frontend.utils_client.generic_symmetric_key_client()¶
Фукнция генерирует симметричный ключ для шифровки сообщения. Возвращает его в строковом формате
- frontend.utils_client.get_public_key(server, msg)¶
Сериализуем сообщение и отправляем запрос на получение публичного ключа сервера. Получаем и возвращаем публичный ключ сервера в строковом формате
- frontend.utils_client.init_socket_tcp()¶
Инициализация сокета
- frontend.utils_client.install_param_in_socket_client()¶
Устанавливаем введенные пользователем параметры подключения к серверу/создания сервера
- frontend.utils_client.serialization_message(message)¶
Сериализуем сообщение
- frontend.utils_client.sys_param_reboot()¶
Обновление параметров командной строки
variables_client.py¶
crud.py¶
model.py¶
- class frontend.client_database.model.Contacts(**kwargs)¶
- class frontend.client_database.model.History(**kwargs)¶
- class frontend.client_database.model.ServerInfo(**kwargs)¶
В этой модели хранятся публичные ключи сервера и пользователя