feat: сделал протокол немного логичнее
Теперь шифруется вся информация, кроме опций протокола, что улучшает приватность. Лучше описана структура протокола. Убраны примеры, так как уже без надобности
@ -1,6 +1,5 @@
|
|||||||
# Quilin
|
# Quilin
|
||||||
|
|
||||||
|
|
||||||
## Полезная нагрузка
|
## Полезная нагрузка
|
||||||
|
|
||||||
### Пожелания
|
### Пожелания
|
||||||
@ -9,15 +8,24 @@
|
|||||||
|
|
||||||
### Отправка
|
### Отправка
|
||||||
|
|
||||||
Похож на документ в yaml формате. В начале идет название протокола и указание его версии. В случае общения с сервером этот протокол подразумевается по умолчанию и будет использоваться его последняя версия
|
Поля этого протокола имеют следующую структуру
|
||||||
|
|
||||||
То, что начинается с // - комментарий
|
1. Объявление протокола (может быть опущено, он подразумевается приложением и будет использована его последняя версия, если не сказано обратного)
|
||||||
|
2. Опции передачи сообщения - используются для того, чтобы обозначить намерения отправителя относительно передаваемого сообщения. В основном задаются меры безопасности. Часть из них работает по умолчанию, но может быть отключена
|
||||||
|
3. Основная часть сообщения. Если указано, что будет использовано шифрование, то телом сообщения будут зашифрованные данные в формате ASCII Armor. Если нет, то те же данные будут переданы в открытом виде. Сами данные имеют следующий формат
|
||||||
|
1. from: указание аккаунта, от чьего имени отправляется сообщение
|
||||||
|
2. to: указание того, кому будет отправлено сообщение
|
||||||
|
3. token: средство авторизации. Выдается сервером на время сессии. Может и должен быть запрошен отдельно
|
||||||
|
4. Сам текст сообщения. Блок со служебной информацией заканчивается тройным дефисом. Все, что указано после них на новой строке считается текстом сообщения
|
||||||
|
|
||||||
|
Приблизительно структура сообщения выглядит так
|
||||||
|
|
||||||
```
|
```
|
||||||
// Опциональное указание протокола и версии
|
// Опциональное указание протокола и версии
|
||||||
[Quilin [VERSION]]
|
[Quilin [VERSION]]
|
||||||
// Дополнительные опции
|
// Дополнительные опции
|
||||||
[o/options]: [sign/s] [no-tls/nt]
|
[o/options]: [sign/s] [encryption/e]=[RSA/DES/DSA] [tls/t] [stream/st]
|
||||||
|
---
|
||||||
// Указание аккаунта, от имени которого отправляется сообщение
|
// Указание аккаунта, от имени которого отправляется сообщение
|
||||||
from: {nickname}
|
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
|
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