# Протокол входа в систему (Auth)

Все пакеты сервера/клиента входа в систему шифруются с использованием модифицированной схемы blowfish. Каждый зашифрованный блок Blowfish имеет длину 64 бита. Как только клиент подключается, сервер инициирует связь, отправляя пакет инициализации. Этот пакет зашифрован с помощью постоянного ключа blowfish (который можно найти в клиенте). Что важно, этот пакет содержит ключ blowfish, используемый для дальнейшей связи.

Первый пакет с сервера:

1. Запись пакетных данных
2. Увеличьте размер пакета до кратного 8
3. Шифрование пакетных данных с помощью 32-разрядного ключа XOR
4. Добавьте 8 байт
5. Храните ключ XOR в первых 4 добавленных байтах
6. Зашифруйте пакет с помощью заранее известного ключа blowfish
7. Отправить пакет

Другие пакеты с сервера:

1. Запись пакетных данных
2. Увеличьте размер пакета до кратного 8
3. Вычислите контрольную сумму пакета (простая/быстрая схема на основе XOR)
4. Добавьте 8 байт
5. Храните контрольную сумму в первых 4 добавленных байтах
6. Зашифруйте пакет с помощью ключа blowfish, отправленного в первом пакете
7. Отправить пакет

Пакеты от клиента:

1. Запись пакетных данных
2. Увеличьте размер пакета до кратного 8
3. Вычислите контрольную сумму пакета (простая/быстрая схема на основе XOR)
4. Добавьте 16 байт
5. Храните контрольную сумму в первых 4 добавленных байтах
6. Зашифруйте пакет с помощью ключа blowfish, полученного от сервера
7. Отправить пакет