Skip to main content

Secure Transport Protocol Certificate (STPC) - Cryptographic certificate system with modern algorithms support

Project description

Secure Transport Protocol Certificate (STPC) 🛡️

Python Version License Build

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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stpc-0.1.0a3.tar.gz (13.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stpc-0.1.0a3-cp313-cp313-win_amd64.whl (349.3 kB view details)

Uploaded CPython 3.13Windows x86-64

File details

Details for the file stpc-0.1.0a3.tar.gz.

File metadata

  • Download URL: stpc-0.1.0a3.tar.gz
  • Upload date:
  • Size: 13.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for stpc-0.1.0a3.tar.gz
Algorithm Hash digest
SHA256 41a57d8fdec741d17b1b59894f6ffcb6f2688c7439d2dff774f9e5aebbf54e3f
MD5 0f4dd618d9d4e7281e5625d9f5c5bd41
BLAKE2b-256 531b3aed3fb5e85a072db71d82d4a7d622d7087137f180db0d05ee802ecf3cfc

See more details on using hashes here.

File details

Details for the file stpc-0.1.0a3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: stpc-0.1.0a3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 349.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for stpc-0.1.0a3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ef8a5221e2b2ed852388f1aae93dbe18755e0821e34f0f5f6b4a618f63fa1254
MD5 0882be66737a55bdc156d8e1b2125b7f
BLAKE2b-256 8a12a73424ea12ae3622f390b310880a566f3aba69c68091a16313d51f1da905

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page