2.6 KiB
2.6 KiB
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 本文件
硬性规则
- 目标平台 Los4:不实现 Windows/Linux/macOS 编译目标(当前平台仅作构建宿主)。
- 零第三方依赖:仅 ISO C17 + libc;不用 OpenSSL/mbedTLS/GMP;熵来自系统调用。
- 结构分层:
crypto 原语 → ssl/ssh 协议 → apps 命令,协议层不直接依赖应用层。 - 常量时间:密码学核心路径禁止密钥相关分支(用
paze_ct_equal等)。 - 编码风格:纯 C、紧凑直接、注释用中文、不做多余抽象层、单文件状态机。
- 构建:
.\build.ps1(gcc,C17),产物进bin/,中间件留build/。 - 测试:
build/run_tls_test.ps1自测、build/run_openssl_interop.ps1互操作;改动后必须跑通自测。 - Git:中文提交信息;不主动推送,用户要求才推(parlz=gitea、origin=GitHub);无 push 权限/网络问题时如实报告。
- 文档:改功能同步更新 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
客户端连接管理(经跳板机转发),中等。