README 补齐三平台构建方案(Linux/macOS 用 cmake, Windows build.ps1 或 cmake); 修复 CMakeLists 遗漏 p384.c/p521.c 与 libm 链接(此前 Linux 构建会缺符号), 增加 psftp 目标; Linux 已修/需实测, macOS 未测试如实标注

这个提交包含在:
JGZYES
2026-08-14 20:20:20 +08:00
父节点 d4bd9fe886
当前提交 31cdd35a14
修改 2 个文件,包含 59 行新增1 行删除
+13
查看文件
@@ -49,6 +49,8 @@ add_library(paze_crypto STATIC
src/crypto/curve25519.c src/crypto/curve25519.c
src/crypto/ed25519.c src/crypto/ed25519.c
src/crypto/p256.c src/crypto/p256.c
src/crypto/p384.c
src/crypto/p521.c
src/crypto/ecdsa.c src/crypto/ecdsa.c
src/crypto/bignum.c src/crypto/bignum.c
src/crypto/rsa.c src/crypto/rsa.c
@@ -57,6 +59,8 @@ add_library(paze_crypto STATIC
target_include_directories(paze_crypto PUBLIC include PRIVATE src) target_include_directories(paze_crypto PUBLIC include PRIVATE src)
if(WIN32) if(WIN32)
target_link_libraries(paze_crypto PUBLIC advapi32) target_link_libraries(paze_crypto PUBLIC advapi32)
else()
target_link_libraries(paze_crypto PUBLIC m)
endif() endif()
add_library(paze_ssl STATIC add_library(paze_ssl STATIC
@@ -127,3 +131,12 @@ if(WIN32)
else() else()
target_link_libraries(pssh PRIVATE m) target_link_libraries(pssh PRIVATE m)
endif() endif()
# 独立 SFTP 客户端
add_executable(psftp apps/psftp/main.c)
target_link_libraries(psftp PRIVATE paze_ssh paze_crypto)
if(WIN32)
target_link_libraries(psftp PRIVATE ws2_32)
else()
target_link_libraries(psftp PRIVATE m)
endif()
+46 -1
查看文件
@@ -28,15 +28,60 @@ tests/ 已知答案(KAT)与协议自测
## 构建 ## 构建
仅需要支持 C17 的编译器与 libc,零第三方依赖。产物:`pazessl`(TLS 命令行)、`pssh`(SSH 工具集)、`psftp`(SFTP 客户端)。
### 通用方式(推荐,Windows / Linux / macOS 均可)
跨平台构建由 CMakeLists 驱动,会生成可执行文件到 `build/`:
```bash ```bash
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j cmake --build build -j
``` ```
仅需要支持 C17 的编译器与 libc。 ### Linux
```bash
# 依赖:gcc/clang + cmake + make;不需要任何第三方库
sudo apt install -y gcc cmake make # Debian/Ubuntu
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
# 二进制在 build/pazessl build/pssh build/psftp
```
> 说明:LINUX 构建已修复(补齐 p384/p521 源文件与 libm 链接)。当前二进制在**Linux 下请实际验证**,如有报错反馈给项目。
### macOS
```bash
# 依赖:Xcode Command Line Tools(gcc/clang)+ cmake + make
xcode-select --install
brew install cmake
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
```
> 说明:macOS 使用 Unix Makefiles 生成器,理论上与 Linux 一致;**尚未在 macOS 实测**,如有问题请反馈。
### Windows
方案 A(推荐,gcc + PowerShell 脚本):
```powershell
.\build.ps1 # 产物输出到 bin/ (pazessl.exe pssh.exe pscp.exe psshd.exe psftp.exe ...)
```
方案 B(msvc 或 mingw,经由 cmake):
```powershell
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release
```
## 状态 ## 状态
工程量巨大,按层推进。当前完成度见 `STATUS.md` 工程量巨大,按层推进。当前完成度见 `STATUS.md`
TLS 1.3 已覆盖:完整握手(ECDHE + X25519/P-256)、RSA/ECDSA 证书(含 X.509 ECDSA P-256 证书解析与验签)、SHA-256/SHA-384 密码套件、1.3↔1.2 版本回退、**PSK 会话恢复**(NewSessionTicket 签发/解析、binder 校验、恢复握手免证书),并通过 OpenSSL `s_server`/`s_client` 双向互操作对测。 TLS 1.3 已覆盖:完整握手(ECDHE + X25519/P-256)、RSA/ECDSA 证书(含 X.509 ECDSA P-256 证书解析与验签)、SHA-256/SHA-384 密码套件、1.3↔1.2 版本回退、**PSK 会话恢复**(NewSessionTicket 签发/解析、binder 校验、恢复握手免证书),并通过 OpenSSL `s_server`/`s_client` 双向互操作对测。
SSH-2 已覆盖:transport/kex/auth/channel、`pssh ssh`(shell/exec/端口转发/跳板 `-J`/`-W`/`-N`/agent 转发 `-A`/保活/自动重连)、`pssh scp`/`psftp``psshd`(多用户库+权限+fail2ban 兼容日志)。详见 `STATUS.md`