README 补齐三平台构建方案(Linux/macOS 用 cmake, Windows build.ps1 或 cmake); 修复 CMakeLists 遗漏 p384.c/p521.c 与 libm 链接(此前 Linux 构建会缺符号), 增加 psftp 目标; Linux 已修/需实测, macOS 未测试如实标注
这个提交包含在:
+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()
|
||||||
|
|||||||
@@ -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`。
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户