文件
PazeSSH/AGENT.MD
T

43 行
2.6 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# AGENT.md — 接手指南
## 项目结构
```
include/paze/ 公共头文件(tls.h 对外 API)
src/crypto/ 密码学原语:哈希/AES/ChaCha20/Poly1305/AEAD/X25519/Ed25519/bignum/RSA/P-256/KDF/ASN.1/X.509
src/ssl/ TLS 1.2+1.3tls_record(记录层) tls_keys(key schedule) tls_extensions(扩展)
tls_handshake13/12(状态机) tls_transcript tls_conn(API/生命周期) tls_client/server(入口)
src/ssh/ SSH-2transport/kex/auth/channel/client/server/sftp
src/util/ 内存/字节序/错误/日志
apps/ 命令行:pazessl / pssh(分发) / 独立命令(pscp/pkeygen/psshd/psftp…)
build/ 中间产物(编译)/测试脚本/互操作脚本
bin/ 构建输出(exe)
STATUS.md 完成度总表 AGENT.md 本文件
```
## 硬性规则
1. **目标平台 Los4**:不实现 Windows/Linux/macOS 编译目标(当前平台仅作构建宿主)。
2. **零第三方依赖**:仅 ISO C17 + libc;不用 OpenSSL/mbedTLS/GMP;熵来自系统调用。
3. **结构分层**`crypto 原语 → ssl/ssh 协议 → apps 命令`,协议层不直接依赖应用层。
4. **常量时间**:密码学核心路径禁止密钥相关分支(用 `paze_ct_equal` 等)。
5. **编码风格**:纯 C、紧凑直接、注释用中文、不做多余抽象层、单文件状态机。
6. **构建**`.\build.ps1`gcc,C17),产物进 `bin/`,中间件留 `build/`
7. **测试**`build/run_tls_test.ps1` 自测、`build/run_openssl_interop.ps1` 互操作;改动后必须跑通自测。
8. **Git**:中文提交信息;不主动推送,用户要求才推(parlz=gitea、origin=GitHub);无 push 权限/网络问题时如实报告。
9. **文档**:改功能同步更新 STATUS.md;不建多余 .md。
## 待办(按优先级)
### 1. 0-RTT / HRR — TLS 1.3 数据路径(✅ 已完成 2026-08-13
- 服务端:CH 无 key_share → 发 HRRrandom=魔数 `CF21AD74...F84A4F`)→ 等 CH2;`sent_hrr` 标记
- 客户端:识别 HRR 魔数 → `paze_tls_tr_reset_to_synthetic` → 生成 CH2(仅选定组 share)→ 放弃 0-RTT
- 0-RTT:客户端 CH 带 early_data 扩展 + 发 early 数据(early_write);服务端解密(early_read);EndOfEarlyData 用 client_early_traffic_secret
- 验证:`pazessl s_client -early -sess_in ...` / `s_server -early` 端到端通过(同进程会话复用);`-key_share P-256` 触发 HRR 通过
### 2. TLS secp384r1
实现 P-384 点运算(bignum 已有),加曲线 + 套件,中等偏繁。
### 3. SSH ProxyJump
客户端连接管理(经跳板机转发),中等。