stpc 0.1.0a3
Secure Transport Protocol Certificate (STPC) - Cryptographic certificate system with modern algorithms support
License: MIT
Requires Python: >=3.12
Keywords: cryptography, certificates, security, ed25519, falcon, post-quantum


# Secure Transport Protocol Certificate (STPC) 🛡️

![Python Version](https://img.shields.io/badge/python-3.9%2B-blue)
![License](https://img.shields.io/badge/license-MIT-green)
![Build](https://img.shields.io/badge/alpha_test-not_stable-red)

STPC — это высокопроизводительная криптографическая система для работы с сертификатами, поддерживающая современные алгоритмы подписи, CRL и OCSP. Проект реализован на Python с использованием Rust-библиотек для криптографических операций.

## 🔥 Ключевые особенности

- **Поддержка современных алгоритмов**:
  - Ed25519 (рекомендуется)
  - Falcon512/Falcon1024 (постквантовые)
  - RSA (устаревший, не рекомендуется)
  
- **Полный цикл управления сертификатами**:
  - Генерация корневых и пользовательских сертификатов
  - Парсинг и валидация
  - PEM-сериализация

- **Система отзыва сертификатов**:
  - CRL (Certificate Revocation Lists)
  - OCSP (Online Certificate Status Protocol) сервер и клиент

- **Временная синхронизация**:
  - Автоматическая синхронизация с NTP-серверами
  - Защита от атак с подменой времени

## 🚀 Быстрый старт

### Установка

```bash
pip install -r requirements.txt
maturin develop  # Сборка Rust-библиотеки
```

### Примеры использования

#### 1. Генерация корневого сертификата

```python
from stpc.main import RootCertificates
from stpc import stpc

private_key, public_key = stpc.Ed25519.generate_keypair()

root_cert = RootCertificates.generate_cert(
    0x02,  # Ed25519
    b"STP_Root_CA",
    b"John",
    b"Doe",
    b"Security",
    b"Example Corp",
    b"New York",
    b"US",
    public_key,
    3600 * 24 * 365 * 10,  # 10 лет
    private_key
)
```

#### 2. Проверка сертификата через OCSP

```python
from stpc.main import OCSP

# Запуск сервера
ocsp_server = OCSP.server()
ocsp_server.start(crl_list, root_private_key, root_public_key, 8080, 0x02)

# Клиентский запрос
ocsp_client = OCSP.client("localhost", 8080, root_public_key, 0x02)
status = ocsp_client.check_certificate("1234567890abcdef")
print(status)  # {'status': 'good', 'revoked': False, ...}
```

## 🛠 Технические детали

### Алгоритмы подписи

| ID  | Алгоритм   | Безопасность           | Скорость |
|-----|-----------|-----------------------|----------|
| 0x01| RSA       | ❌ Уязвим к атакам    | ⚡⚡      |
| 0x02| Ed25519   | ✅ Высокая            | ⚡⚡⚡     |
| 0x03| Falcon512 | ✅ Постквантовый      | ⚡        |
| 0x04| Falcon1024| ✅ Постквантовый      | 🐢        |

### Производительность (benchmarks)

```
Ed25519 keypair generation: 0.000412 sec (~2427 ops/sec)
Server cert generation: 0.001203 sec (~831 certs/sec)
CRL check: 0.000038 sec (~26315 checks/sec)
OCSP check: 0.001200 sec (~833 req/sec)
```

## 🛡 Безопасность

- Защита от replay-атак (проверка временных меток)
- Валидация всех полей сертификатов
- Автоматическая проверка CRL при валидации
- Поддержка OCSP для онлайн-проверки статуса

## 📜 Лицензия

MIT License. См. файл [LICENSE](LICENSE) для подробностей.

---

> **Note**: Проект в активной разработке. **Не рекомендуется** использование в production!