feat: сделал протокол немного логичнее

Теперь шифруется вся информация, кроме опций протокола, что улучшает
приватность. Лучше описана структура протокола. Убраны примеры, так как
уже без надобности
ElectronixTM
2025-04-29 23:14:51 +03:00
parent e616d05300
commit 6c58b8c593

@ -1,6 +1,5 @@
# Quilin
## Полезная нагрузка
### Пожелания
@ -9,15 +8,24 @@
### Отправка
Похож на документ в yaml формате. В начале идет название протокола и указание его версии. В случае общения с сервером этот протокол подразумевается по умолчанию и будет использоваться его последняя версия
Поля этого протокола имеют следующую структуру
То, что начинается с // - комментарий
1. Объявление протокола (может быть опущено, он подразумевается приложением и будет использована его последняя версия, если не сказано обратного)
2. Опции передачи сообщения - используются для того, чтобы обозначить намерения отправителя относительно передаваемого сообщения. В основном задаются меры безопасности. Часть из них работает по умолчанию, но может быть отключена
3. Основная часть сообщения. Если указано, что будет использовано шифрование, то телом сообщения будут зашифрованные данные в формате ASCII Armor. Если нет, то те же данные будут переданы в открытом виде. Сами данные имеют следующий формат
1. from: указание аккаунта, от чьего имени отправляется сообщение
2. to: указание того, кому будет отправлено сообщение
3. token: средство авторизации. Выдается сервером на время сессии. Может и должен быть запрошен отдельно
4. Сам текст сообщения. Блок со служебной информацией заканчивается тройным дефисом. Все, что указано после них на новой строке считается текстом сообщения
Приблизительно структура сообщения выглядит так
```
// Опциональное указание протокола и версии
[Quilin [VERSION]]
// Дополнительные опции
[o/options]: [sign/s] [no-tls/nt]
[o/options]: [sign/s] [encryption/e]=[RSA/DES/DSA] [tls/t] [stream/st]
---
// Указание аккаунта, от имени которого отправляется сообщение
from: {nickname}
// Пользователь может использовать временный токен, отправляемый сервером,
@ -37,47 +45,7 @@ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
```
Без комментариев все то же самое
```
[Quilin [VERSION]]
[o/options]: [sign/s] [no-tls/nt]
from: {nickname}
token: {some token}
to: {name}
---
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
```
#### Описание опций
- sign/s: передаваемое сообщение использует цифровые подписи. Серверу следует эти подписи публичными ключами, привязанными к аккаунтам. Если подпись не удастся проверить, сообщение будет отброшено
- no-tls - не использовать и не проверять tls у сервера. Не безопасно
#### Пример отправки сообщения
```
from: ElectronixTM
to: MrQiz
---
Hello, my dear friend, how are you?
May you please give me some advice on the following code snippet:
\```py
import antigravity
\```
```
### Ответ
## Протокол шифрования
## Криптографический протокол
### Пожелания автора