Metadata-Version: 2.4
Name: theobex
Version: 1.4.0
Summary: Context-Aware AES-256-GCM Encryption Protocol (Obex vS130Q426T)
Author: Sequt
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptography>=42.0.0
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# theobex

**theobex** — это современный протокол симметричного шифрования на базе стандарта **AES-256-GCM** с поддержкой контекстной изоляции ключей через HKDF.

Библиотека разработана для обеспечения высокой степени безопасности в распределенных системах (например, Telegram-ботах), где требуется разделение доступа к данным на уровне контекста пользователя.

## Особенности
- **Authenticated Encryption (AEAD)**: Используется алгоритм AES-256-GCM, который гарантирует не только конфиденциальность, но и целостность данных (защита от подмены байтов).
- **Контекстная изоляция (HKDF)**: Деривация рабочего ключа зависит от `context_id`. Это предотвращает возможность расшифровки данных одного пользователя ключом другого.
- **AAD (Additional Authenticated Data)**: Версия протокола защищена от подмены на уровне алгоритма шифрования.
- **Автогенерация ключей**: Безопасное создание 32-байтового мастер-ключа при первом запуске.

## Установка

```
pip install theobex
```

## Работа с библиотекой

```
from theobex import Obex

# Инициализация (ключ создастся автоматически, если файл не найден)
cipher = Obex("path/to/master.key")

# Данные для шифрования
secret_data = "Hello, Secure World!"
user_id = 123456789

# Шифрование с привязкой к ID контекста
encrypted_blob = cipher.encrypt(secret_data, context_id=user_id)

# Расшифровка (обязательно передать тот же context_id)
try:
    decrypted_text = cipher.decrypt(encrypted_blob, context_id=user_id)
    print(f"Decrypted: {decrypted_text}")
except ValueError as e:
    print(f"Ошибка: {e}")
```

## Безопасность

Протокол **theobex** использует промышленный стандарт библиотеки cryptography.
Структура зашифрованного пакета:
```text
[Version: 1b] + [Salt: 16b] + [Nonce: 12b] + [Ciphertext + Tag: ~b]
```

- **Author**: Sequt
- **Created based on the project**: SQT Projects
- **License**: MIT
