Metadata-Version: 2.4
Name: cryptolayer-mini
Version: 0.1.1
Summary: Мини-версия CryptoLayer: шифрование поверх мессенджеров (учебный проект)
Author: Богдан
License: MIT
Project-URL: Homepage, https://pypi.org/project/cryptolayer-mini/
Keywords: cryptography,encryption,ecdh,aes-gcm,education
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Security :: Cryptography
Classifier: Intended Audience :: Education
Classifier: Development Status :: 3 - Alpha
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptography>=41.0
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# CryptoLayer Mini

[![PyPI version](https://img.shields.io/pypi/v/cryptolayer-mini.svg)](https://pypi.org/project/cryptolayer-mini/)
[![Python versions](https://img.shields.io/pypi/pyversions/cryptolayer-mini.svg)](https://pypi.org/project/cryptolayer-mini/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)


Мини-версия CryptoLayer: криптографический слой поверх мессенджеров.

> ⚠️ **Это учебный проект.** Он написан для изучения криптографии,
> а не для защиты реальных секретов. Не используйте его в серьёзных
> задачах — в нём есть упрощения и нет защиты от многих атак
> (replay, MITM, компрометация ключей и т.д.).

Автор: **Богдан**, 12 лет.

## Что умеет

- **AES-256-GCM** — шифрование сообщений (с проверкой целостности)
- **ECDSA (SECP256R1)** — цифровые подписи
- **ECDH (SECP256R1) + HKDF** — обмен ключами между пользователями
- **pack_message / unpack_message** — упаковка шифротекста и подписи
- **ConsoleTransport** — транспорт-заглушка (имитация отправки через мессенджер)

## Установка

    pip install -e .

## Пример

    python demo.py

Пример вывода:

    Алиса и Боб сгенерировали ключи.
    ECDH: общий ключ успешно выведен.
    [Мессенджер] отправлено 168 байт:
      0047304502201577f2bfb214603b6538db1552242907343438c2e45c420b4d1fd919a5769d130221...
    [Мессенджер] получено 168 байт
    Подпись верна.
    Расшифровано: Привет, Боб! Это секретное сообщение.

## Как это работает

1. Алиса и Боб создают по два ключа: для подписи и для обмена.
2. Обмениваются публичными ключами обмена и выводят общий секрет через ECDH + HKDF.
3. Алиса шифрует сообщение общим ключом (AES-256-GCM) и подписывает своим приватным ключом (ECDSA).
4. Шифротекст и подпись упаковываются в один пакет и «отправляются».
5. Боб распаковывает, расшифровывает и проверяет подпись Алисы.

## Структура проекта

    cryptolayer_mini/
        __init__.py      — что экспортируется
        crypto.py        — шифрование, подписи, обмен ключами
        transport.py     — имитация транспорта
    demo.py              — пример использования
    pyproject.toml       — описание пакета
    LICENSE              — MIT

## Лицензия

MIT — делай что хочешь, только укажи автора.
