文件
PazeSSH/CHANGELOG.md
T

4.5 KiB
原始文件 Blame 文件历史

CHANGELOG

本项目 (PazeSSL / PazeSSH) 的变更记录。格式参考 Keep a Changelog;版本号按里程碑独立标注(仓库未打 tag,以日期与功能阶段为准)。

[开发主线] — 2026-08-13

新增 —— TLS secp384r1 (P-384) 完整链路

  • 新增 P-384 椭圆曲线:src/crypto/p384.c + include/paze/p384.h(Jacobian 点运算、常量时间标量乘、仿射编解码,结构与 p256 对齐)。
  • ECDSA 支持 P-384 签名/验签(RFC 6979 确定性 k)与 RFC 5915 私钥解析(paze_ecdsa_p384_sign/verifypaze_ecdsa_p384_priv_from_pem/der)。
  • X.509 支持 secp384r1 证书解析、验签与签发(pk_kind==ECDSA_P384paze_x509_build_spki384、签发者 ecdsa_d384)。
  • TLS 1.3 支持 secp384r1 命名组与签名算法:
    • 0x0018PAZE_TLS_GROUP_SECP384R1)纳入 key_share / supported_groups / ECDH(按 SEC1 x 坐标) / HelloRetryRequest / 服务端组选择。
    • 签名算法 PAZE_TLS_SIG_ECDSA_SECP384R1_SHA384 (0x0503) 纳入 CertificateVerify 签发与验签。
  • TLS 1.2 ECDHE 亦支持 P-384 组。
  • CLIpazessl s_client -key_share P-384
  • 验证:曲线、ECDSA、X.509 证书均与 OpenSSL 双向交叉验证;TLS 端点 P-384 密钥交换(hrr=YES)+ 证书链/主机名验证通过,既有自测无回归。

修复

  • ECDSA bits2int:输入(摘要)短于群阶 qlen 时应右对齐填充,而非左移;此前会导致 P-384 + SHA-256 场景验签错误。
  • 对端证书 DER 生命周期:新增 paze_tls_store_peer_cert,将证书 DER 拷贝到自有缓冲,避免 issuer_dn/subject_dn/tbs_der 等指针指向被记录层复用的缓冲,导致 TLS 1.3 / 1.2 客户端证书链验证失败。

其他

  • 新增 CHANGELOG.md;更新 STATUS.md / AGENT.md
  • 规则:Git 推送仅发往 parlz(gitea),不再提交 origin(GitHub)。
  • SSH ProxyJump:确认 -J 代理跳板(单跳)核心链路已实现并同步到文档;新增 pssh ssh -W host:port(标准 I/O 转发/netcat 模式,目标 TCP 隧道桥接本地 stdio)与 -N(不执行远程命令、仅端口转发,配合 -L/-R/-D)。说明:-J 接受逗号分隔的多跳语法,但多级级联跳板在同步 I/O 架构下的应用数据阶段交互不稳定,当前会打印警告并退化为仅第一跳的稳定单跳。

[功能阶段] — 2026-08TLS 1.3 完善期)

新增

  • TLS 1.3 0-RTT 数据路径RFC 8446 §4.2.10 / §4.5 / §8):
    • 客户端 early_data 扩展、握手前早数据发送、EndOfEarlyDataearly 密钥加密并计入 transcript)。
    • 服务端 early_read 解密接受早数据;-early / -sess_in / -sess_out 选项。
    • 公共 APIpaze_tls_config_enable_early_datapaze_tls_early_writepaze_tls_early_data_acceptedpaze_tls_early_data_lenpaze_tls_hrr_occurred
    • 端到端验证通过(early accepted + hrr=YES)。
  • HRRHelloRetryRequestRFC 8446 §4.1.3 / §4.1.4):
    • 服务端 key_share 不匹配时发送 HRR(固定魔数 random)、transcript 合成 MessageHash 重放、客户端 CH2(仅选定组 share)响应、HRR 后放弃 0-RTT。
  • TLS 1.3 PSK 会话恢复RFC 8446 §4.2.11 / §4.6.1):
    • NewSessionTicket 签发与解析、ticket + binder 校验、selected_identity 回选、恢复握手跳过证书;-sess_in / -sess_out 端到端验证。
  • TLS 1.3 SHA-384 密码套件(TLS_AES_256_GCM_SHA384)服务端/客户端握手。

修复

  • TLS 1.3 ECDSA 证书互操作:CertificateVerify 改用 DER 签名(RFC 8446 §4.2.3),补齐 NewSessionTicket extensions,支持 X.509 ECDSA 证书验签。

构建 / 其他

  • 构建输出移至 bin/;新增 standalone 命令(pscp/pkeygen/pkeyscan/pcopy-id/pagent/padd/psshd)与 psftp 客户端。
  • 新增 STATUS.md 完成度文档。

早期(TLS 1.2 与 SSH-2 基础)

新增

  • TLS 1.2 握手与版本回退(版本回退、ECDHE-RSA/ECDSA/RSA AES-GCM、CHACHA20-POLY1305)。
  • SSH-2 完整协议栈:transport / kex / auth / channel,含 SFTP 子系统 v3,与 OpenSSH / Git sftp / scp 互操作。
  • 密码学原语:哈希(SHA-1/256/512/MD5)与 HMAC/HKDF/PBKDF2;对称(AES、ChaCha20-Poly1305);曲线(X25519、Ed25519、P-256);非对称 RSA;X.509 / ASN.1 / PEM/DER。
  • psshpazessl 等多个 CLI 命令。

修复

  • TLS 记录层 GCM 实现与 RFC 的偏差。
  • 构建与编译相关修复(如 early key_share 参数不匹配)。