From 50386fcf8d1e8a734f0830eb57edf0e1828abfce Mon Sep 17 00:00:00 2001 From: JGZYES Date: Fri, 14 Aug 2026 11:24:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20CHANGELOG.md:=20=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E9=A1=B9=E7=9B=AE=E5=8F=98=E6=9B=B4=E8=AE=B0=E5=BD=95?= =?UTF-8?q?(secp384r1=20/=200-RTT=20/=20HRR=20/=20PSK=20=E4=BC=9A=E8=AF=9D?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=20/=20TLS=201.2=20/=20SSH-2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1c79af8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,65 @@ +# CHANGELOG + +本项目 (PazeSSL / PazeSSH) 的变更记录。格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/);版本号按里程碑独立标注(仓库未打 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/verify`、`paze_ecdsa_p384_priv_from_pem/der`)。 +- X.509 支持 secp384r1 证书解析、验签与签发(`pk_kind==ECDSA_P384`、`paze_x509_build_spki384`、签发者 `ecdsa_d384`)。 +- TLS 1.3 支持 secp384r1 命名组与签名算法: + - 组 `0x0018`(`PAZE_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 组。 +- CLI:`pazessl 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)。 + +## [功能阶段] — 2026-08(TLS 1.3 完善期) + +### 新增 + +- **TLS 1.3 0-RTT 数据路径**(RFC 8446 §4.2.10 / §4.5 / §8): + - 客户端 `early_data` 扩展、握手前早数据发送、EndOfEarlyData(early 密钥加密并计入 transcript)。 + - 服务端 early_read 解密接受早数据;`-early` / `-sess_in` / `-sess_out` 选项。 + - 公共 API:`paze_tls_config_enable_early_data`、`paze_tls_early_write`、`paze_tls_early_data_accepted`、`paze_tls_early_data_len`、`paze_tls_hrr_occurred`。 + - 端到端验证通过(early accepted + hrr=YES)。 +- **HRR(HelloRetryRequest)**(RFC 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。 +- `pssh`、`pazessl` 等多个 CLI 命令。 + +### 修复 + +- TLS 记录层 GCM 实现与 RFC 的偏差。 +- 构建与编译相关修复(如 early key_share 参数不匹配)。