43 行
2.6 KiB
Markdown
43 行
2.6 KiB
Markdown
# 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.3:tls_record(记录层) tls_keys(key schedule) tls_extensions(扩展)
|
||
tls_handshake13/12(状态机) tls_transcript tls_conn(API/生命周期) tls_client/server(入口)
|
||
src/ssh/ SSH-2:transport/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 → 发 HRR(random=魔数 `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
|
||
客户端连接管理(经跳板机转发),中等。
|