mini-cert
Description
mini-cert is a C/CPP utility that generates a self-signed X.509 certificate and a 2048-bit RSA private key with optional CertSubject (an analogue of openssl req -x509 -nodes -newkey rsa:2048 -sha256).
The utility is built on the crypery network stack - a pure C implementation with no external crypto dependencies. The build includes four crypery modules: tls, ssl, http and url.
Modules used
- tls - base crypto layer: TLS 1.2/1.3, AES-128-GCM, SHA-256, HMAC/HKDF, RSA-2048, ECDH (P-256, X25519), self-signed X.509 certificate generation and parsing (DER/PEM). This is the module mini-cert uses to generate the key and certificate
- ssl - OpenSSL-compatible API layer over the built-in TLS: loading certificates and keys from PEM, handshake, encrypted I/O
- http - HTTP/1.1 server: routing, static serving, WebSocket, SSE, gzip compression (disabled with the HTTP_NO_GZIP flag)
- url - HTTP/HTTPS client: URL parsing, request execution, redirect handling, multipart/form-data
Technologies
- C/CPP - implementation language
- crypery - pure C network stack with no external crypto dependencies (tls, ssl, http, url modules)
- Cryptography: TLS 1.2/1.3, AES-128-GCM, SHA-256, HMAC/HKDF, RSA-2048, ECDH (P-256, X25519)
- MinGW/GCC (Windows), Unix-like systems
- License GNU AGPL v3 (Affero GPL)