mini-cert
Описание
mini-cert - утилита, написанная на C/CPP, генерирует самоподписанный сертификат X.509 и закрытый RSA-ключ 2048 бит с возможностью добавления CertSubject (аналог команды openssl req -x509 -nodes -newkey rsa:2048 -sha256).
Утилита построена на сетевом стеке crypery - реализации на чистом C без внешних криптографических зависимостей. В сборку входят четыре модуля crypery: tls, ssl, http и url.
Используемые модули
- tls - базовый криптографический слой: TLS 1.2/1.3, AES-128-GCM, SHA-256, HMAC/HKDF, RSA-2048, ECDH (P-256, X25519), генерация и разбор самоподписанных X.509-сертификатов (DER/PEM). Именно этот модуль используется mini-cert для генерации ключа и сертификата
- ssl - OpenSSL-совместимый API-слой над встроенной реализацией TLS: загрузка сертификата и ключа из PEM, рукопожатие, шифрованный ввод-вывод
- http - HTTP/1.1-сервер: маршрутизация, раздача статики, WebSocket, SSE, gzip-сжатие (отключено флагом HTTP_NO_GZIP)
- url - HTTP/HTTPS-клиент: разбор URL, выполнение запросов, обработка редиректов, multipart/form-data
Технологии
- C/CPP - язык реализации
- crypery - сетевой стек на чистом C без внешних криптографических зависимостей (модули tls, ssl, http, url)
- Криптография: TLS 1.2/1.3, AES-128-GCM, SHA-256, HMAC/HKDF, RSA-2048, ECDH (P-256, X25519)
- MinGW/GCC (Windows), Unix-подобные системы
- Лицензия GNU AGPL v3 (Affero GPL)