diff --git a/CMakeLists.txt b/CMakeLists.txt index 683cb26..3cc38be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,6 +49,8 @@ add_library(paze_crypto STATIC src/crypto/curve25519.c src/crypto/ed25519.c src/crypto/p256.c + src/crypto/p384.c + src/crypto/p521.c src/crypto/ecdsa.c src/crypto/bignum.c src/crypto/rsa.c @@ -57,6 +59,8 @@ add_library(paze_crypto STATIC target_include_directories(paze_crypto PUBLIC include PRIVATE src) if(WIN32) target_link_libraries(paze_crypto PUBLIC advapi32) +else() + target_link_libraries(paze_crypto PUBLIC m) endif() add_library(paze_ssl STATIC @@ -127,3 +131,12 @@ if(WIN32) else() target_link_libraries(pssh PRIVATE m) 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() diff --git a/README.md b/README.md index 3bb85b6..98ab52f 100644 --- a/README.md +++ b/README.md @@ -28,15 +28,60 @@ tests/ 已知答案(KAT)与协议自测 ## 构建 +仅需要支持 C17 的编译器与 libc,零第三方依赖。产物:`pazessl`(TLS 命令行)、`pssh`(SSH 工具集)、`psftp`(SFTP 客户端)。 + +### 通用方式(推荐,Windows / Linux / macOS 均可) + +跨平台构建由 CMakeLists 驱动,会生成可执行文件到 `build/`: + ```bash cmake -S . -B build -DCMAKE_BUILD_TYPE=Release 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`。 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`。