feat: сделал протокол немного логичнее
Теперь шифруется вся информация, кроме опций протокола, что улучшает приватность. Лучше описана структура протокола. Убраны примеры, так как уже без надобности
@ -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
|
||||
\```
|
||||
```
|
||||
|
||||
### Ответ
|
||||
|
||||
## Протокол шифрования
|
||||
## Криптографический протокол
|
||||
|
||||
### Пожелания автора
|
||||
|
||||
|
||||
Reference in New Issue
Block a user