mini-tls
描述
mini-tls 是基于 crypery 库(TLS 1.2/1.3)的纯 C/CPP 自包含迷你 TLS 服务器与 TLS 客户端项目。无外部依赖:所有密码算法均在 crypery 库内从零实现。
服务器监听 TCP 端口,启动时生成 RSA-2048 密钥与自签名 X.509 证书,与每个连接的客户端进行 TLS 握手(自动选择 TLS 1.2 或 1.3)并回显所有收到的数据。客户端连接服务器、完成握手、输出协商的会话参数,并以交互或非交互模式与服务器交换消息。
使用的模块
示例直接使用 tls 模块;构建时编译库的所有模块:
- tls - 基础密码层:TLS 1.2/1.3 握手(客户端/服务器)、AES-128-GCM、SHA-256、HMAC-SHA256、RSA-2048、ECDH(P-256、X25519)、X.509 证书生成与解析
- ssl - 内置 TLS 之上的 OpenSSL 兼容封装(SSL_CTX/SSL API、超时、对端证书验证)
- http - TCP/TLS 之上的 HTTP/1.1 服务器(路由、静态文件、WebSocket、SSE)
- url - HTTP/HTTPS 客户端(类 curl API、重定向、分块编码)
技术
- C/CPP、crypery 库(TLS 1.2/1.3)
- 密码学:AES-128-GCM、SHA-256、HMAC-SHA256、HKDF、RSA-2048、ECDH(P-256、X25519)、X.509
- Windows(MinGW、Winsock)与类 Unix 系统(BSD 套接字)
- 许可证 GNU AGPL v3(Affero GPL)