Cerberus/README.md
2025-01-29 18:06:54 +00:00

89 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
>_
```