2.5 KiB
2.5 KiB
PCIe 真卡联调与冒烟检查清单
1. 前置条件
- 部署环境为目标架构(与生产一致的 CPU/OS/libc)。
- 已安装厂商
.so,并可被进程访问。 - 服务配置为 JNA 真卡模式:
tms.crypto-card.enabled=truetms.crypto-card.mode=JNAtms.crypto-card.vendor-lib-path或tms.crypto-card.vendor-lib-name正确tms.crypto-card.strict-alg-id-validation=true(若厂商扩展算法可临时关闭)
- 已知内部接口鉴权令牌
X-Internal-Token。
2. 核心检查项(必须通过)
- 设备与会话
GET /api/v1/device/crypto/device-countGET /api/v1/device/crypto/device-infoPOST /api/v1/device/crypto/self-test
- 基础密码能力
- 随机数:
GET /api/v1/device/crypto/random?length=16 - 摘要:
POST /api/v1/device/crypto/digest - HMAC:
POST /api/v1/device/crypto/hmac
- 随机数:
- 对称能力
- 明文密钥加解密:
/encrypt/plain+/decrypt/plain - KEK 生成与状态:
/kek/generate+/kek/status
- 明文密钥加解密:
- 主密钥状态
GET /api/v1/device/crypto/lmk/seed-mac
验收标准:
ApiResponse.success == trueApiResponse.code == 200- 返回长度字段与 Base64 解码长度一致
- 错误日志中无 native 崩溃/段错误
3. 高风险专项
3.1 SDFE_ImportEncKeyPair_ECC(结构体直传)
- 用最小可用样本执行导入流程。
- 成功后立即查询相关密钥状态接口验证导入结果。
- 若出现参数错误,优先检查结构体字段对齐与
unsigned long位宽。
3.2 ECCCipher 变长字段边界
- 对不同明文长度执行 ECC 加密路径。
- 记录返回
ECCCipher.l的最大值。 - 若接近当前上限(
C_MAX_LEN),必须提升上限并复测。
3.3 算法标识白名单
- 对业务实际用到的所有
algId跑一遍。 - 若被严格校验拦截,补充到
Gm0018AlgorithmIds后再回归。
4. 失败排查顺序
- 配置错误:库路径、库名、鉴权 token。
- 运行时依赖:
ldd/动态库缺失。 - 参数编码:Base64 入参、长度字段、结构体大小。
- 算法标识:
algId是否在白名单。 - 厂商错误码:结合
PcieErrorMapper与厂商文档定位。
5. 回归策略
- 每次升级以下任一项,都执行本清单:
- JDK 版本
- 厂商
.so版本 - JNA 结构体定义
JnaPcieCryptoService参数转换逻辑
6. 自动化模板
- 使用脚本:
scripts/pcie_realcard_smoke.sh - 建议在联调机和预生产各执行一次,并保留日志归档。