从平台开通到密钥销毁的完整 SDK 接入流程。带有 门控计费点 标记的步骤由 SaaS 平台 进行序列号校验与按次计费,其余步骤均为本地过程,不产生费用。
在 SaaS 管理后台完成:创建站点 → 创建租户 → 订阅套餐与功能模块 → 发放 SDK 授权序列号。 序列号绑定站点与租户配额(站点数、租户数、密钥请求次数),是后续所有门控校验的主键。
QCF_Init应用程序启动时加载授权文件(qcfkeyfile)与序列号,建立与密服平台的连接。 初始化失败通常意味着授权文件缺失或网络不通,SDK 采用 fail-closed 策略——无法完成校验时一律拒绝服务。
QCF_Auth 门控计费点以序列号向平台发起入网认证:校验序列号有效性、授权状态与剩余配额。 校验不通过返回 HTTP 402 并拒绝后续所有密钥操作;通过后获取会话 Token(有效期可查询、到期需重新认证)。
QCF_FillKey由 QRNG 量子随机数生成密钥并充注到终端安全介质,作为后续会话密钥的根材料。 充注支持预激活与重充注,物联网终端可离线使用充注密钥(见应用场景·物联网模式 2)。
按业务场景选择申请方式:会话ID(主被叫)/ keyID(物联网、批量分发)/ 组ID(组通信)/ 批量申请(1MB 密钥块)。 每次成功申请计一次费并扣减模块配额(remaining_count),配额耗尽即拒绝申请,后台实时可查消耗明细。
QCF_EncryptUpdate QCF_DecryptUpdate使用会话密钥句柄对业务数据做流式加解密。加解密是纯本地过程——谁加密谁解密、使用时长均由应用决定, 与密服平台无关,也不产生任何费用。
QCF_DestoryKey QCF_ExportKey会话密钥用完即销毁:内存仓库默认最多存放 64 个密钥句柄,只申请不销毁会导致仓库满、后续申请失败。 需跨重启长期保存时调用导出接口,导出成功后 SDK 自动销毁内存中的对应密钥。
以最常见的点对点密钥共享为例,展示两端与密服平台的完整交互时序
四种应用场景各自的核心接口组合,通用底座均为:初始化 + 入网认证 + 充注
| 场景 | 密钥申请接口 | 加解密接口 | 配套接口 |
|---|---|---|---|
| 主被叫模式 | QCF_ApplyKeyWithSessionID |
QCF_EncryptUpdate / QCF_DecryptUpdate |
QCF_ApplyBulkKey(批量)QCF_ApplyKeyWithKeyID(keyID 分发) |
| 物联网场景 | 模式 1:QCF_EncryptWithWrap / QCF_DecryptWithWrap模式 2: QCF_ApplyKeyWithKeyID |
模式 1:Wrap 接口内置 模式 2: QCF_EncryptUpdate / QCF_DecryptUpdate |
QCF_GetAvailableSPMKeyQCF_CalcKeyAuthMAC(认证码) |
| 组通信场景 | QCF_CreateGroupAndApplyKey或 QCF_CreateGroup + QCF_ApplyKeyWithGroupID |
QCF_EncryptUpdate / QCF_DecryptUpdate |
QCF_UpdateGroupMembersQCF_InquireGroupMembers |
| 跨密服平台 | QCF_ApplyKeyWithSessionIDExQCF_CreateGroupEx |
QCF_EncryptUpdate / QCF_DecryptUpdate |
Ex 扩展参数传 NULL 时兼容原接口(SDK v2.12.0+) |
密钥即服务,用多少付多少——每一次密钥申请都被精确计量
SDK 授权序列号是门控校验主键,绑定站点与租户。序列号无效、过期或配额耗尽时,平台返回 HTTP 402 并拒绝服务(fail-closed),杜绝未授权调用。
模块级密钥配额三元组:总配额(max_auth_count)、已用(auth_count)、剩余(remaining_count)。每次成功申请密钥扣减一次,加解密本地过程不计费。
管理后台提供 SDK 授权概览、密钥消耗统计与计费明细,按站点 / 租户 / 模块多维度分账,配额告警提前触达,避免业务中断。