This release is a pre-release and may not be stable for production use.
Secure Transport Protocol Certificate (STPC) 🛡️
STPC — это высокопроизводительная криптографическая система для работы с сертификатами, поддерживающая современные алгоритмы подписи, CRL и OCSP. Проект реализован на Python с использованием Rust-библиотек для криптографических операций.
🔥 Ключевые особенности
-
Поддержка современных алгоритмов:
- Ed25519 (рекомендуется)
- Falcon512/Falcon1024 (постквантовые)
- RSA (устаревший, не рекомендуется)
-
Полный цикл управления сертификатами:
- Генерация корневых и пользовательских сертификатов
- Парсинг и валидация
- PEM-сериализация
-
Система отзыва сертификатов:
- CRL (Certificate Revocation Lists)
- OCSP (Online Certificate Status Protocol) сервер и клиент
-
Временная синхронизация:
- Автоматическая синхронизация с NTP-серверами
- Защита от атак с подменой времени
🚀 Быстрый старт
Установка
pip install -r requirements.txt
maturin develop # Сборка Rust-библиотеки
Примеры использования
1. Генерация корневого сертификата
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
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 для подробностей.
Note: Проект в активной разработке. Не рекомендуется использование в production!
Release files for stpc 0.1.0a3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| stpc-0.1.0a3.tar.gz | 13.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| stpc-0.1.0a3-cp313-cp313-win_amd64.whl | CPython 3.13 | CPython 3.13 | Windows x86-64 | Details |
Total release size: 14.2 MB
Release files / stpc-0.1.0a3.tar.gz
| Download URL | stpc-0.1.0a3.tar.gz |
|---|---|
| Size | 13.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
41a57d8fdec741d17b1b59894f6ffcb6f2688c7439d2dff774f9e5aebbf54e3f
|
|
BLAKE2b-256 checksum How to use checksums |
531b3aed3fb5e85a072db71d82d4a7d622d7087137f180db0d05ee802ecf3cfc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / stpc-0.1.0a3-cp313-cp313-win_amd64.whl
| Download URL | stpc-0.1.0a3-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 349.3 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ef8a5221e2b2ed852388f1aae93dbe18755e0821e34f0f5f6b4a618f63fa1254
|
|
BLAKE2b-256 checksum How to use checksums |
8a12a73424ea12ae3622f390b310880a566f3aba69c68091a16313d51f1da905
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|