文件
PazeSSH/README.md
T
JGZYES 3e8a5442fa 实现 TLS 1.3 PSK 会话恢复,构建输出移至 bin/ 并新增 standalone/psftp 命令
TLS 1.3 PSK 会话恢复: NewSessionTicket 签发/解析、ticket+binder 校验、selected_identity 回选、恢复握手免证书(pazessl -sess_in/-sess_out 端到端验证); 构建脚本输出 bin/ 并支持独立命令与 psftp; 修复 SFTP 二进制传输与 copy_id -P; 补充 tests/ 调试与 verify_tls
2026-08-13 19:30:07 +08:00

43 行
1.7 KiB
Markdown

# PazeSSL / PazeSSH
从零开始、**仅依赖 libc** 的 OpenSSL / OpenSSH 平替,纯 C 实现。
- **PazeSSL** —— TLS 1.2 / 1.3 协议栈 + 密码学原语库(替代 libcrypto + libssl)
- **PazeSSH** —— SSH-2 协议栈(替代 OpenSSH 客户端 / 守护端)
## 设计目标
1. **零第三方依赖**:不调用 OpenSSL、libsodium、GMP、mbedTLS……所有密码学算法自实现,仅用 ISO C17 libc + 平台系统调用获取熵。
2. **单一可移植内核**:加密原语跨 Windows / Linux / macOS 编译;平台相关代码仅限熵源与套接字。
3. **结构清晰**:`src/crypto` 原语层 → `src/ssl` / `src/ssh` 协议层 → `apps` 命令行。
4. **常量时间 / 无密钥相关分支**:密码学核心路径遵循抗时序攻击准则。
## 目录结构
```
include/paze/ 公共头文件
src/crypto/ 哈希/HMAC/AES/ChaCha20/Poly1305/AEAD/X25519/Ed25519/bignum/RSA/P-256/KDF/编码/ASN.1/X.509
src/ssl/ TLS 1.2 + 1.3 record/handshake/客户端/服务端
src/ssh/ SSH-2 transport/kex/auth/channel/客户端/守护端
src/util/ 内存/字节序/错误/日志
apps/pazessl/ 类 openssl 命令行
apps/ssh/ ssh 客户端
apps/sshd/ sshd 守护端
tests/ 已知答案(KAT)与协议自测
```
## 构建
```bash
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
```
仅需要支持 C17 的编译器与 libc。
## 状态
工程量巨大,按层推进。当前完成度见 `STATUS.md`
TLS 1.3 已覆盖:完整握手(ECDHE + X25519/P-256)、1.3↔1.2 版本回退、**PSK 会话恢复**(NewSessionTicket 签发/解析、binder 校验、恢复握手免证书),并通过 OpenSSL `s_server`/`s_client` 双向互操作对测。