API 参考

本节简述不同 API 模块的接口功能。

Runtime API

许可管理 API。提供许可登录、查看许可、许可加解密等接口。

函数名 描述
slm_init 初始化函数,调用所有Runtime API必须先调用此函数进行初始化
slm_find_license 查找所有许可
slm_get_cloud_token 枚举已登录的用户token
slm_login 登录许可
slm_logout 许可登出
slm_keep_alive 保持登录会话心跳
slm_encrypt 许可加密,相同的许可ID相同的开发者加密结果相同
slm_decrypt 许可解密,相同的许可ID相同的开发者加密结果相同
slm_user_data_getsize 获得许可的数据区大小
slm_user_data_read 读许可数据,可以读取RAW和ROM
slm_user_data_write 写许可的读写数据区
slm_get_info 根据参数获取锁信息、会话信息、升级信息、会话信息
slm_execute_static 执行锁内算法
slm_execute_dynamic 许可动态执行代码
slm_mem_alloc SS内存托管内存申请
slm_mem_free 释放托管内存
slm_mem_read SS内存托管读
slm_mem_write SS内存托管内存写入
slm_is_debug 检测是否正在调试
slm_get_device_cert 获取锁的设备证书
slm_verify_device 设备正版验证
slm_adjust_time_request 获取时间修复数据,用于生成时钟校准请求
slm_led_control 闪烁指示灯
slm_get_version 获得runtime库和SS的版本信息.
slm_free 释放API生成的缓冲区
slm_update 将D2C包进行升级
slm_update_ex 将D2C包进行升级,需指定加密锁芯片号
slm_enum_device 枚举本地锁信息
slm_check_module 检查模块区
slm_snippet_exeucte 碎片代码执行
slm_error_format 通过错误码获得错误信息
slm_cleanup 反初始化函数,与slm_init对应

Control API

提供许可遍历、SS服务遍历查看等接口。

函数名 描述
get_all_server 获取所有SS服务
get_all_description 获取所有设备描述
get_cloud_description 获取云锁描述
get_local_description 获取本地设备数组
get_remote_description 获取本地设备数组
license_id 获取指定设备描述下的所有许可ID
license_context 读取指定锁和开发者下的许可简要信息
get_pub_size 读取公开区大小
slm_read_pub_data 读取用户公开内容
license_context 获得许可详细信息
slm_read_session_context 获取单个锁的某个开发者下的所有session信息
slm_kick_session 踢除指定的许可会话
slm_clear_history 清理历史记录
get_device_info 获得设备信息
get_filelist_info 获得所内文件信息
get_device_cert 获取锁的设备证书
slm_ctrl_verify_device 获取已登录许可的设备证书
slm_client_open 客户端打开SS IPC句柄
slm_client_close 关闭客户端IPC句柄
slm_free 释放API生成的缓冲区
get_service_type 获取服务类型
ss_set_service_type 获取服务类型
slm_ctrl_bind_or_unbind 绑定或解绑请求
slm_ctrl_transfer_license 转移许可请求(从云向锁转移)
slm_ctrl_cloud_to_dongle 云向USB锁的请求
slm_ctrl_exchange_key_cloud 云向USB锁的请求
slm_ctrl_store_cert 存储证书
get_account_info 获取账号信息
slm_ctrl_refresh_license 刷新许可缓存
get_cloud_token 枚举已登录的用户token

D2C API

提供许可增、更新、删除、锁定、解除锁定等操作;修正锁内虚拟时钟;签发动态代码包。

函数名 描述
master_open 打开签发设备(控制锁)
master_close 关闭句柄
master_set_seed 让控制锁生成种子码
get_developer_id 获取控制锁开发者ID
get_developer_cert 获取开发者证书
master_import_seed 导入种子码
master_export_seed 导出种子码
get_seedkey 获取签发设备的种子码密钥
d2c_lic_new 创建D2C句柄,用于签发许可
d2c_file_seed_new 创建D2C句柄,用于签发文件,设置种子等
d2c_add_developer_cert 增加开发者证书
gen_dynamic_code 签发动态代码
d2c_add_pkg 根据描述,生成升级包,并添加升级包到D2C
d2c_add_lic 根据描述,生成升级包,并添加升级包到D2C
d2c_get 从D2C句柄中获取D2C流,可保存为 .d2c 文件用于升级
get_pkg_desc 获得包的描述
d2c_delete 删除D2C句柄
d2c_sign D2C签名
d2c_encrypt D2C加密
get_snippet_seed 获取碎片代码种子
gen_snippet_code 生成碎片代码
gen_snippet_code_with_key 获取生成碎片代码请求
license_encrypt 许可加密

Update API

升级许可升级包(D2C)到用户锁。

函数名 描述
slm_update 将D2C包进行升级

错误码

定义接口返回值的编码及对应错误描述信息。