TLS 1.3 PSK 会话恢复: NewSessionTicket 签发/解析、ticket+binder 校验、selected_identity 回选、恢复握手免证书(pazessl -sess_in/-sess_out 端到端验证); 构建脚本输出 bin/ 并支持独立命令与 psftp; 修复 SFTP 二进制传输与 copy_id -P; 补充 tests/ 调试与 verify_tls
3.8 KiB
3.8 KiB
STATUS — 项目完成度
PazeSSL / PazeSSH:从零实现、仅依赖 libc 的 OpenSSL / OpenSSH 平替(纯 C, ISO C17)。 按层推进,本文件汇总当前各层完成度(2026-08-13 更新)。
总体
| 层 | 模块 | 状态 |
|---|---|---|
| 原语层 | src/crypto — 哈希/对称/非对称/编码/ASN.1/X.509 |
✅ 完整实现 |
| 协议层 | src/ssl — TLS 1.2 / 1.3 |
✅ TLS 1.2 + 1.3 完整实现(含版本回退与 OpenSSL 互操作验证) |
| 协议层 | src/ssh — SSH-2 transport/kex/auth/channel + SFTP |
✅ 完整实现 |
| 应用层 | apps/* — 11 个 CLI |
✅ 可用 |
| 测试 | ❌ 已从仓库移除(KAT 本地化) |
密码学原语(✅ 完整)
- 哈希:SHA-1 / SHA-256 / SHA-512 / MD5 / HMAC / HKDF / PBKDF2
- 对称:AES-128/192/256、AES-CBC/GCM、ChaCha20、Poly1305、ChaCha20-Poly1305 AEAD
- 曲线:X25519、Ed25519、P-256、ECDSA(大数运算自研:模幂、模逆、Montgomery)
- 非对称:RSA(密钥生成/加解密/签名)、X.509 证书解析与构建、PEM/DER 编解码
- 其他:ASN.1 DER、base64、hex、常量时间准则
PazeSSL — TLS(🔶 部分完成)
- ✅ TLS 1.3 客户端/服务端状态机(record、handshake、key schedule、扩展)
- ✅ TLS 1.3 PSK 会话恢复(RFC 8446 §4.2.11 / §4.6.1):NewSessionTicket 签发与解析、ticket+binder 校验、selected_identity 回选、恢复握手跳过证书;
pazessl -sess_in/-sess_out端到端验证通过 - ✅ TLS 1.2 客户端/服务端状态机 + 1.3↔1.2 版本回退(ECDHE-RSA/ECDSA/RSA AES-GCM、CHACHA20-POLY1305)
- ✅ OpenSSL 互操作对测 4/4:s_server↔s_client 双向 TLS 1.3 / TLS 1.2(
build/run_openssl_interop.ps1) - ✅ 证书链与信任锚加载、RSA/ECDSA 私钥 PEM 解析
- ⬜ TLS 1.3 服务端 SHA-384 密码套件握手重放(SHA-256 已覆盖)
- ⬜ 0-RTT / HRR 数据路径
PazeSSH — SSH-2(✅ 完成)
- transport:版本交换、密钥交换(curve25519-sha256)、NEWKEYS、包加密
- 认证:password / publickey(authorized_keys 校验)
- 通道:session(exec/shell 真实进程执行)、direct-tcpip(出站桥接)
- SFTP 子系统 v3:OPEN/READ/WRITE/OPENDIR/READDIR/STAT/REALPATH 等,与 OpenSSH sftp / scp -s 互操作(Git OpenSSH 实测通过)
- 客户端命令:
pssh ssh— 远程 shell / 执行命令,-L/-R/-D端口转发pssh scp— SFTP 优先(OpenSSH 9.x 默认),回退 legacy SCP;-r递归、-p保留时间戳pssh keygen/keyscan/copy-id— 密钥工具pssh agent/add/ssha— agent 守护进程与密钥管理pssh sshd— 服务端:多用户库 + 分级权限 + publickey 认证 + SFTP 子系统
- 密码套件:chacha20-poly1305@openssh.com、aes128/256-gcm@openssh.com
应用(✅ 可用)
| 命令 | 说明 |
|---|---|
pssh |
SSH 工具集入口(ssh/scp/sshd/keygen/keyscan/copy-id/agent/add/useradd) |
pazessl |
类 openssl 命令行(s_client/s_server/verify/genrsa/req/x509) |
pssh useradd |
管理 sshd 用户库(用户名:哈希:权限) |
与 OpenSSH 对比
| OpenSSH | PazeSSH | 说明 |
|---|---|---|
ssh |
pssh / pssh ssh |
远程 shell / 执行命令 / 端口转发 |
scp |
pssh scp |
SFTP 优先 + legacy SCP 回退 |
sftp |
pssh sshd 子系统 |
服务端 SFTP v3,互操作通过 |
ssh-keygen |
pssh keygen |
ed25519/rsa/ecdsa |
ssh-keyscan |
pssh keyscan |
known_hosts 格式 |
ssh-copy-id |
pssh copy-id |
安装公钥 |
ssh-agent / ssh-add |
pssh agent / add |
agent 密钥管理 |
sshd |
pssh sshd |
多用户 + 权限 + 公钥认证 + SFTP |
遗留项(已知)
- X.509 ECDSA 证书解析仍失败(P-256 曲线点验证)
- TLS 1.3 SHA-384 服务端握手重放、0-RTT / HRR 未覆盖