89 lines
3.2 KiB
Markdown
89 lines
3.2 KiB
Markdown
# Cerberus
|
||
|
||
Проект демонстрирует:
|
||
|
||
1. Генерацию и использование **256-битных ключей** (либо автоматически, либо пользовательских в hex-формате).
|
||
2. **Обмен ключами по звуку** с помощью `sound find` (BFSK-модуляция).
|
||
3. **Шифрование и расшифрование** командой `cerber maketea` / `cerber drinktea` на базе **ChaCha20-Poly1305** (через Monocypher).
|
||
4. Простейший **web-сервер** (`web start/stop`) и установка **ника** (`nick set`).
|
||
|
||
## Зависимости
|
||
|
||
- **C++17** компилятор (clang++ или g++)
|
||
- **PortAudio**:
|
||
- macOS: `brew install portaudio`
|
||
- Linux (Debian/Ubuntu): `sudo apt-get install portaudio19-dev`
|
||
- Windows: через vcpkg (`vcpkg install portaudio`) или другие способы
|
||
- (Опционально) `make` (если используете предоставленный Makefile)
|
||
|
||
## Сборка
|
||
|
||
```bash
|
||
make
|
||
```
|
||
|
||
#Использование
|
||
|
||
**0.Запустите**
|
||
```
|
||
./cerberus
|
||
```
|
||
|
||
|
||
**1.Установите ник**
|
||
```
|
||
nick set <usernick>
|
||
```
|
||
|
||
**2.Сгенерируйте ключ (рекомендуется)**
|
||
```
|
||
nick generatekey
|
||
```
|
||
|
||
**3.Получив ключ зашифруйте сообщение**
|
||
```
|
||
cerber maketea твойтекст твойключ
|
||
```
|
||
|
||
**4.Расшифруйте ключем**
|
||
```
|
||
cerber drinktea тутхекс тутключ
|
||
```
|
||
|
||
## Пример:
|
||
|
||
```
|
||
(`-') _ (`-') <-.(`-') (`-') _ (`-') (`-').->
|
||
_ ( OO).-/<-.(OO ) __( OO) ( OO).-/<-.(OO ) .-> ( OO)_
|
||
\-,-----.(,------.,------,)'-'---.\ (,------.,------,),--.(,--. (_)--\_)
|
||
| .--./ | .---'| /`. '| .-. (/ | .---'| /`. '| | |(`-')/ _ /
|
||
/_) (`-')(| '--. | |_.' || '-' `.)(| '--. | |_.' || | |(OO )\_..`--.
|
||
|| |OO ) | .--' | . .'| /`'. | | .--' | . .'| | | | \.-._) \
|
||
(_' '--'\ | `---.| |\ \ | '--' / | `---.| |\ \ \ '-'(_ .'\ /
|
||
`-----' `------'`--' '--'`------' `------'`--' '--' `-----' `-----'
|
||
|
||
Cerberus BFSK:
|
||
nick set <usernick>
|
||
nick generatekey
|
||
web start/connect/stop
|
||
sound find/lose
|
||
cerber maketea <text> [hexKey]
|
||
cerber drinktea <hex> [hexKey]
|
||
exit
|
||
>_ nick set dev
|
||
[nick] set: dev
|
||
>_ nick generatekey
|
||
[nick] 256-bit key generated: 77abff5f7ce57b2543c6061a6bfaab3c5c5e52106c9dc987ec395449790aa1d2
|
||
>_ cerber maketea testing 77abff5f7ce57b2543c6061a6bfaab3c5c5e52106c9dc987ec395449790aa1d2
|
||
[makeTea] keyUsed=77abff5f7ce57b2543c6061a6bfaab3c5c5e52106c9dc987ec395449790aa1d2
|
||
[makeTea] encrypted: 9756b012b6dd05e8202d3bb57ebfbda9950ecaf34073d22026b5e06c440f0e0c406f21d0af951a207eed0e888e06f4
|
||
>_ cerber maketea testing
|
||
[makeTea] keyUsed=77abff5f7ce57b2543c6061a6bfaab3c5c5e52106c9dc987ec395449790aa1d2
|
||
[makeTea] encrypted: dd798f966e61c4e136685f2c6f5246866d7f0f80e3ff3cbbf4e5f45f1532049262af0e992c22303d48614bc82154c7
|
||
>_ nktea dd798f966e61c4e136685f2c6f5246866d7f0f80e3ff3cbbf4e5f45f1532049262af0e992c22303d48614bc82154c7 77abff5f7ce57b2543c6061a6bfaab3c5c5e52106c9dc987ec395449790aa1d2
|
||
[drinkTea] keyUsed=77abff5f7ce57b2543c6061a6bfaab3c5c5e52106c9dc987ec395449790aa1d2
|
||
[drinkTea] decrypted: testing
|
||
>_
|
||
```
|
||
|