# BSPHP-C-DEMO 目录项目文件作用说明

下各项目文件的用途。

## 一、根目录文件作用

- `BSPHP-C-DEMO.sln`  
  Visual Studio 解决方案文件，包含两个子项目：登录模式与卡模式。

- `CMakeLists.txt`  
  根 CMake 构建入口，统一引入 `BSPHP-C-DEMO-LOGIN` 和 `BSPHP-C-DEMO-CARD` 两个子目录。

- `build_vs2022_x64.bat`  
  一键 CMake + VS2022 x64 构建脚本，用于快速编译两个示例程序。

- `vcpkg.json`  
  vcpkg manifest 依赖声明文件，当前声明依赖：`openssl`、`curl`。

- `Directory.Build.props`  
  MSBuild 全局属性文件，启用 vcpkg manifest 自动集成，让 VS 工程自动解析依赖。

- `vcpkg_init.bat`  
  vcpkg 初始化脚本：克隆/引导 vcpkg、执行 `integrate install`、安装依赖。

- `目录结果说明_语言对照.md`  
  语言与目录对照说明（Swift/mac 示例 -> C 版目录映射）。

- `目录项目文件作用说明.md`（本文件）  
  项目文件用途说明，便于阅读、交接与二次开发。

---

## 二、`BSPHP-C-DEMO-LOGIN`（登录模式）文件作用

- `bsphp_config.h`  
  登录模式配置文件（接口 URL、mutualkey、服务端私钥、客户端公钥、验证码前缀）。

- `bsphp_crypto.h` / `bsphp_crypto.c`  
  加密模块：MD5、AES-128-CBC、RSA-PKCS1、URL 编码，服务于 BSPHP 协议请求。

- `bsphp_client.h` / `bsphp_client.c`  
  登录模式 API 客户端封装，包含：
  - `internet.in`
  - `BSphpSeSsL.in`
  - `gg.in`
  - `login.lg`
  以及加密请求打包发送流程。

- `main.c`  
  登录模式示例入口，演示 bootstrap 与公告调用，预留登录调用示例。

- `README.md`  
  登录模式说明文档（参考 mac 逻辑、配置填写、构建方式）。

- `CMakeLists.txt`  
  登录模式子项目 CMake 构建文件。

- `bsphp_login_demo.vcxproj`  
  登录模式 VS 工程文件。

- `bsphp_login_demo.vcxproj.filters`  
  VS 工程分组文件（源文件/头文件显示分组）。

---

## 三、`BSPHP-C-DEMO-CARD`（卡模式）文件作用

- `bsphp_config.h`  
  卡模式配置文件（接口 URL、mutualkey、服务端私钥、客户端公钥）。

- `bsphp_crypto.h` / `bsphp_crypto.c`  
  加密模块（与登录模式同协议）。

- `bsphp_client.h` / `bsphp_client.c`  
  卡模式 API 客户端封装，包含：
  - `login.ic`
  - `getinfo.ic`
  以及基础 bootstrap 请求流程。

- `main.c`  
  卡模式示例入口，演示初始化与调用方式。

- `README.md`  
  卡模式说明文档（参考 mac 逻辑、配置填写、构建方式）。

- `CMakeLists.txt`  
  卡模式子项目 CMake 构建文件。

- `bsphp_card_demo.vcxproj`  
  卡模式 VS 工程文件。

- `bsphp_card_demo.vcxproj.filters`  
  VS 工程分组文件（源文件/头文件显示分组）。

---

## 四、当前项目用途总结

- 本项目用于将 mac/Swift 示例的核心加密通信协议复刻到 C 语言：
  - `appsafecode` 计算
  - AES-128-CBC 请求加密
  - RSA PKCS1 签名加密
  - `parameter=urlencode(enc|rsa)` 提交格式
- 分为两套可独立运行示例：
  - 登录模式（`.lg`）
  - 卡模式（`.ic`）
- 支持 VS 工程、CMake、vcpkg 三种常见开发构建路径。

