Virbox SDK
2.1
|
函数 | |
SS_UINT32 SSAPI | master_open (OUT MASTER_HANDLE *device_handle) |
打开签发设备(开发锁) 更多... | |
SS_UINT32 SSAPI | master_close (IN MASTER_HANDLE device_handle) |
关闭签发设备(开发锁) 更多... | |
SS_UINT32 SSAPI | master_get_developer_id (IN MASTER_HANDLE device_handle, OUT SS_BYTE *developer_id) |
获取开发锁开发商ID 更多... | |
SS_UINT32 SSAPI | master_get_root_count (IN MASTER_HANDLE device_handle, OUT SS_UINT32 *count) |
获取开发商锁内所有的根证书数量 更多... | |
SS_UINT32 SSAPI | master_get_ca_cert (IN MASTER_HANDLE device_handle, IN SS_BYTE ca_type, OUT SS_BYTE *ca_cert, IN SS_UINT32 cert_bufsize, OUT SS_UINT32 *cert_size) |
通过证书类型,获取开发锁 CA 证书 更多... | |
SS_UINT32 SSAPI | master_get_ca_cert_ex (IN MASTER_HANDLE device_handle, IN SS_BYTE ca_type, IN SS_UINT32 root_index, OUT SS_BYTE *ca_cert, IN SS_UINT32 cert_bufsize, OUT SS_UINT32 *cert_size) |
通过证书类型,获取开发锁 CA 证书 更多... | |
SS_UINT32 SSAPI | master_get_root_ca (IN MASTER_HANDLE device_handle, OUT SS_BYTE *root_ca, IN SS_UINT32 root_bufsize, OUT SS_UINT32 *root_size) |
获取开发锁 Virbox Root CA 证书 更多... | |
SS_UINT32 SSAPI | master_get_device_ca (IN MASTER_HANDLE device_handle, OUT SS_BYTE *device_ca, IN SS_UINT32 device_bufsize, OUT SS_UINT32 *device_size) |
获取开发锁设备 CA 证书 更多... | |
SS_UINT32 SSAPI | master_get_developer_ca (IN MASTER_HANDLE device_handle, OUT SS_BYTE *developer_ca, IN SS_UINT32 ca_bufsize, OUT SS_UINT32 *ca_size) |
获取开发锁开发者 CA 证书 更多... | |
SS_UINT32 SSAPI | master_get_developer_cert (IN MASTER_HANDLE device_handle, OUT SS_BYTE *developer_cert, IN SS_UINT32 cert_bufsize, OUT SS_UINT32 *cert_size) |
获取开发锁开发者证书 更多... | |
SS_UINT32 SSAPI | master_get_developer_cert_ex (IN MASTER_HANDLE device_handle, IN SS_UINT32 root_index, OUT SS_BYTE *developer_cert, IN SS_UINT32 cert_bufsize, OUT SS_UINT32 *cert_size) |
根据根证书索引,获取开发锁开发者证书(扩展接口) 更多... | |
SS_UINT32 SSAPI | master_verify_ca (IN MASTER_HANDLE device_handle, IN SS_BOOL store, IN SS_BYTE ca_type, IN SS_BYTE *ca_cert, IN SS_UINT32 ca_len) |
验证开发锁 CA 证书 更多... | |
SS_UINT32 SSAPI | master_verify_ca_ex (IN MASTER_HANDLE device_handle, IN SS_BOOL store, IN SS_BYTE ca_type, IN SS_UINT32 root_index, IN SS_BYTE *ca_cert, IN SS_UINT32 ca_len) |
验证开发锁CA证书(扩展接口) 更多... | |
SS_UINT32 SSAPI | master_get_seedkey (IN MASTER_HANDLE device_handle, OUT SS_BYTE *key, IN SS_UINT32 max_key_len, OUT SS_UINT32 *key_len) |
获取签发设备的种子码密钥(种子码公钥) 更多... | |
SS_UINT32 SSAPI | master_get_info (IN MASTER_HANDLE device_handle, IN SS_BYTE type, OUT char **info) |
获取开发锁设备信息 更多... | |
SS_UINT32 SSAPI | master_heap_free (IN void *buf) |
释放内存 更多... | |
SS_UINT32 SSAPI | master_pin_change (IN MASTER_HANDLE device_handle, IN SS_BYTE pin_index, IN SS_BYTE *old_pin, IN SS_UINT32 old_pin_len, IN SS_BYTE *new_pin, IN SS_UINT32 new_pin_len, IN SS_BYTE *hash) |
修改开发商开发锁 PIN 码 更多... | |
SS_UINT32 SSAPI | master_pin_verify (IN MASTER_HANDLE device_handle, IN SS_BYTE pin_index, IN SS_BYTE *pin, IN SS_UINT32 pin_len) |
验证开发锁 PIN 码 更多... | |
SS_UINT32 SSAPI | master_pin_is_verified (MASTER_HANDLE device_handle) |
确认 PIN 码是否验证通过 更多... | |
SS_UINT32 SSAPI | master_pin_enable (MASTER_HANDLE device_handle) |
启用开发锁 PIN 码 更多... | |
SS_UINT32 SSAPI | master_pin_disable (MASTER_HANDLE device_handle) |
禁用开发锁 PIN 码 更多... | |
SS_UINT32 SSAPI | master_pin_deauth (MASTER_HANDLE device_handle) |
清除 PIN 权限 更多... | |
SS_UINT32 SSAPI | d2c_lic_new (IN MASTER_HANDLE device_handle, OUT D2C_HANDLE *d2c_license, IN ACCOUNT_TYPE account_type, IN SS_BYTE *account_id, IN SS_UINT32 account_size, IN SS_BYTE *cert, IN SS_UINT32 cert_size) |
创建 D2C 句柄,用于签发许可 更多... | |
SS_UINT32 SSAPI | d2c_file_new (IN MASTER_HANDLE device_handle, OUT D2C_HANDLE *d2c_file, IN SIGN_TYPE sign_type, IN SS_BYTE *param, IN SS_UINT32 param_size) |
创建D2C句柄,用于签发非许可类型升级包,例如签发文件 更多... | |
SS_UINT32 SSAPI | d2c_add_developer_cert (D2C_HANDLE d2c_handle, SS_BYTE *cert, SS_UINT32 cert_len) |
增加开发者证书链(不需要再调用了,保留仅为兼容性) 更多... | |
SS_UINT32 SSAPI | gen_dynamic_code (IN MASTER_HANDLE device_handle, IN SIGN_TYPE sign_type, IN SS_BYTE *param, IN SS_UINT32 param_size, IN SS_BYTE *exec_code, IN SS_UINT32 code_size, IN SS_UINT32 *bound_info, IN SS_UINT32 bound_size, OUT SS_BYTE *pkg, IN SS_UINT32 max_pkg_len, OUT SS_UINT32 *pkg_len) |
签发动态代码 更多... | |
SS_UINT32 SSAPI | d2c_add_pkg (IN D2C_HANDLE d2c_file, IN SS_CHAR *param, IN SS_CHAR *opr_desc) |
根据描述,生成升级包,并添加升级包到 D2C,针对非许可项内容的升级 更多... | |
SS_UINT32 SSAPI | d2c_add_lic (IN D2C_HANDLE d2c_license, IN SS_CHAR *param, IN SS_CHAR *opr_desc, OUT SS_CHAR guid[D2C_GUID_LENGTH]) |
根据描述,生成升级包,并添加升级包到D2C,针对许可项内容的升级 更多... | |
SS_UINT32 SSAPI | d2c_get (IN D2C_HANDLE d2c_handle, OUT SS_CHAR *d2c_buf, IN SS_UINT32 max_buf_len, OUT SS_UINT32 *out_len) |
从 D2C 句柄中获取 D2C 流,可保存为 .d2c 文件用于升级 更多... | |
const SS_CHAR * | d2c_get_pkg_desc (IN D2C_HANDLE d2c_handle, IN SS_UINT32 index) |
获得开发者自定义的 D2C 操作描述 更多... | |
SS_UINT32 SSAPI | d2c_delete (IN D2C_HANDLE d2c_handle) |
删除 D2C 句柄 更多... | |
SS_UINT32 SSAPI | d2c_sign (IN MASTER_HANDLE master_handle, D2C_HASH_ALGO hash_algo, IN SS_UINT32 root_index, IN SS_BYTE *data_in, IN SS_UINT32 data_len, OUT SS_BYTE *sign, IN SS_UINT32 max_sign_len, OUT SS_UINT32 *sign_len) |
D2C 签名 (开发者不必关心) 更多... | |
SS_UINT32 SSAPI | d2c_encrypt (IN SS_BYTE *certs, IN SS_UINT32 certs_len, IN const SS_BYTE *plain, IN SS_UINT32 plain_len, OUT SS_BYTE *cipher, IN SS_UINT32 max_cipher_len, OUT SS_UINT32 *cipher_len) |
D2C加密 (开发者不必关心) 更多... | |
SS_UINT32 SSAPI | get_snippet_seed (IN MASTER_HANDLE master, IN SS_UINT32 license_id, OUT SS_BYTE snippet_seed[SNIPPET_SEED_LENGTH]) |
获取碎片代码种子(开发者不必关心) 更多... | |
SS_UINT32 SSAPI | gen_snippet_code (IN MASTER_HANDLE master, IN SS_UINT32 license_id, IN const SS_BYTE *evx_code, IN SS_UINT32 evx_size, OUT SS_BYTE *snippet_code, IN SS_UINT32 snippet_buf_size, OUT SS_UINT32 *snippet_size) |
生成碎片代码(开发者不必关心) 更多... | |
SS_UINT32 SSAPI | gen_snippet_code_with_key (IN const SNIPPET_CODE_CONTEXT *sc_ctx, IN const SS_BYTE *evx, IN SS_UINT32 evx_size, OUT SS_BYTE *snippet_code, IN SS_UINT32 snippet_bufsize, OUT SS_UINT32 *snippet_size) |
获取生成碎片代码请求(开发者不必关心) 更多... | |
SS_UINT32 SSAPI | license_encrypt (IN MASTER_HANDLE master, IN SS_UINT32 license_id, IN const SS_BYTE *plain, IN SS_UINT32 len, OUT SS_BYTE *cipher) |
使用开发锁进行许可加密(开发者不必关心) 更多... | |
此接口为 Virobx D2C API 说明文档,包含控制锁管理,许可签发,文件签发等功能
SS_UINT32 SSAPI d2c_add_developer_cert | ( | D2C_HANDLE | d2c_handle, |
SS_BYTE * | cert, | ||
SS_UINT32 | cert_len | ||
) |
增加开发者证书链(不需要再调用了,保留仅为兼容性)
[in] | d2c_handle | D2C 句柄,由 d2c_lic_new 或 d2c_file_new 得到 |
[in] | cert | 开发者证书链 |
[in] | cert_len | 证书大小 |
SS_UINT32 SSAPI d2c_add_lic | ( | IN D2C_HANDLE | d2c_license, |
IN SS_CHAR * | param, | ||
IN SS_CHAR * | opr_desc, | ||
OUT SS_CHAR | guid[D2C_GUID_LENGTH] | ||
) |
根据描述,生成升级包,并添加升级包到D2C,针对许可项内容的升级
[in] | d2c_license | 许可 D2C句柄,由 d2c_lic_new 函数得到 |
[in] | param | 升级包 json 串 |
[in] | opr_desc | 包操作描述字符串,开发者自定义 |
[out] | guid | 许可 GUID |
SS_UINT32 SSAPI d2c_add_pkg | ( | IN D2C_HANDLE | d2c_file, |
IN SS_CHAR * | param, | ||
IN SS_CHAR * | opr_desc | ||
) |
根据描述,生成升级包,并添加升级包到 D2C,针对非许可项内容的升级
[in] | d2c_file | 文件 D2C 句柄,由 d2c_file_new 得到 |
[in] | param | 升级包json串 |
[in] | opr_desc | 包描述字符串 |
没有异常 |
SS_UINT32 SSAPI d2c_delete | ( | IN D2C_HANDLE | d2c_handle) |
SS_UINT32 SSAPI d2c_encrypt | ( | IN SS_BYTE * | certs, |
IN SS_UINT32 | certs_len, | ||
IN const SS_BYTE * | plain, | ||
IN SS_UINT32 | plain_len, | ||
OUT SS_BYTE * | cipher, | ||
IN SS_UINT32 | max_cipher_len, | ||
OUT SS_UINT32 * | cipher_len | ||
) |
D2C加密 (开发者不必关心)
[in] | certs | 证书链 |
[in] | certs_len | 链书链长度 |
[in] | plain | 明文 |
[in] | plain_len | 明文长度 |
[out] | cipher | 密文 |
[in] | max_cipher_len | 缓冲区大小 |
[out] | cipher_len | 密文长度 |
SS_UINT32 SSAPI d2c_file_new | ( | IN MASTER_HANDLE | device_handle, |
OUT D2C_HANDLE * | d2c_file, | ||
IN SIGN_TYPE | sign_type, | ||
IN SS_BYTE * | param, | ||
IN SS_UINT32 | param_size | ||
) |
创建D2C句柄,用于签发非许可类型升级包,例如签发文件
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[out] | d2c_file | 返回 D2C 的句柄 |
[in] | sign_type | 签包类型,参考 SIGN_TYPE |
[in] | param | 如果是设备证书,则传入设备证书链,种子码签发填入 Virbox Root CA |
[in] | param_size | 证书链的大小或种签子码签发填 Virbox根证书大小 |
Virbox Root CA 可以通过 master_get_ca_cert_ex 、 master_get_root_count 获取。 最为正确的证书获取方法是做法是:
由于根证书都是一样的,只是新用户锁使用新版本根证书,因此两种证书只需要取一次保存即可。
SS_UINT32 SSAPI d2c_get | ( | IN D2C_HANDLE | d2c_handle, |
OUT SS_CHAR * | d2c_buf, | ||
IN SS_UINT32 | max_buf_len, | ||
OUT SS_UINT32 * | out_len | ||
) |
从 D2C 句柄中获取 D2C 流,可保存为 .d2c 文件用于升级
[in] | d2c_handle | D2C 句柄,由 d2c_lic_new 或 d2c_file_new 得到 |
[out] | d2c_buf | 得到的 D2C 数据流,该数据流为字符串格式 如果为 0,则 out_len 返回需要的长度 |
[in] | max_buf_len | d2c_buf 的缓冲区大小 |
[out] | out_len | 得到的 D2C 数据流长度 |
const SS_CHAR* d2c_get_pkg_desc | ( | IN D2C_HANDLE | d2c_handle, |
IN SS_UINT32 | index | ||
) |
获得开发者自定义的 D2C 操作描述
[in] | d2c_handle | D2C句柄,由 d2c_lic_new 或 d2c_file_new 得到 |
[in] | index | pkg的索引,从 1 开始 |
SS_UINT32 SSAPI d2c_lic_new | ( | IN MASTER_HANDLE | device_handle, |
OUT D2C_HANDLE * | d2c_license, | ||
IN ACCOUNT_TYPE | account_type, | ||
IN SS_BYTE * | account_id, | ||
IN SS_UINT32 | account_size, | ||
IN SS_BYTE * | cert, | ||
IN SS_UINT32 | cert_size | ||
) |
创建 D2C 句柄,用于签发许可
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[out] | d2c_license | 返回 D2C 的句柄 |
[in] | account_type | 账号类型,参考 ACCOUNT_TYPE |
[in] | account_id | 账户名(字符串)或锁号(16字节锁号) |
[in] | account_size | 账户名长度 |
[in] | cert | 证书,如果是 account_type = ACCOUNT_TYPE_NONE ,填入硬件锁设备证书链,账户许可填入云开发者证书链 |
[in] | cert_size | 证书长度 |
SS_UINT32 SSAPI d2c_sign | ( | IN MASTER_HANDLE | master_handle, |
D2C_HASH_ALGO | hash_algo, | ||
IN SS_UINT32 | root_index, | ||
IN SS_BYTE * | data_in, | ||
IN SS_UINT32 | data_len, | ||
OUT SS_BYTE * | sign, | ||
IN SS_UINT32 | max_sign_len, | ||
OUT SS_UINT32 * | sign_len | ||
) |
D2C 签名 (开发者不必关心)
[in] | master_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | hash_algo | 哈希算法类型,参考 D2C_HASH_ALGO |
[in] | root_index | Virbox Root CA 根证书序号 |
[in] | data_in | 要签名的数据 |
[in] | data_len | 要签名数据的长度 |
[out] | sign | 签名后的数据 |
[in] | max_sign_len | 签名缓冲区长度,至少为 256 + 64 字节 |
[out] | sign_len | 签名数据长度 |
SS_UINT32 SSAPI gen_dynamic_code | ( | IN MASTER_HANDLE | device_handle, |
IN SIGN_TYPE | sign_type, | ||
IN SS_BYTE * | param, | ||
IN SS_UINT32 | param_size, | ||
IN SS_BYTE * | exec_code, | ||
IN SS_UINT32 | code_size, | ||
IN SS_UINT32 * | bound_info, | ||
IN SS_UINT32 | bound_size, | ||
OUT SS_BYTE * | pkg, | ||
IN SS_UINT32 | max_pkg_len, | ||
OUT SS_UINT32 * | pkg_len | ||
) |
签发动态代码
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | sign_type | 签包类型,参考 SIGN_TYPE |
[in] | param | 设备证书链 (种子码签发方式填对应的 Virbox Root CA) |
[in] | param_size | 证书链长度 (种子码签发方式填对应的 Virbox Root CA 长度) |
[in] | exec_code | 动态代码 |
[in] | code_size | 代码大小(最大支持 2048 字节大小的动态代码) |
[in] | bound_info | 绑定信息(许可ID 数组,许可ID 为 4 个字节) |
[in] | bound_size | 绑定信息的长度(单位:字节) |
[out] | pkg | 存放升级包的用户缓冲区 |
[in] | max_pkg_len | 缓冲区的长度 |
[out] | pkg_len | 签得的代码长 |
Virbox Root CA 可以通过 master_get_ca_cert_ex 、 master_get_root_count 获取。 最为正确的证书获取方法是做法是:
由于根证书都是一样的,只是新用户锁使用新版本根证书,因此两种证书只需要取一次保存即可。
SS_UINT32 SSAPI gen_snippet_code | ( | IN MASTER_HANDLE | master, |
IN SS_UINT32 | license_id, | ||
IN const SS_BYTE * | evx_code, | ||
IN SS_UINT32 | evx_size, | ||
OUT SS_BYTE * | snippet_code, | ||
IN SS_UINT32 | snippet_buf_size, | ||
OUT SS_UINT32 * | snippet_size | ||
) |
生成碎片代码(开发者不必关心)
[in] | master | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | license_id | 绑定的许可ID |
[in] | evx_code | 执行的原始文件 |
[in] | evx_size | 执行文件的大小 |
[out] | snippet_code | 存放生成的碎片代码的缓冲区 |
[in] | snippet_buf_size | 缓冲区 snippet_code 的大小 |
[out] | snippet_size | 生成的碎片代码的大小 |
SS_UINT32 SSAPI gen_snippet_code_with_key | ( | IN const SNIPPET_CODE_CONTEXT * | sc_ctx, |
IN const SS_BYTE * | evx, | ||
IN SS_UINT32 | evx_size, | ||
OUT SS_BYTE * | snippet_code, | ||
IN SS_UINT32 | snippet_bufsize, | ||
OUT SS_UINT32 * | snippet_size | ||
) |
获取生成碎片代码请求(开发者不必关心)
[in] | sc_ctx | 碎片代码上下文 |
[in] | evx | 执行代码原文 |
[in] | evx_size | 执行代码原文大小 |
[out] | snippet_code | 碎片代码缓冲区 |
[in] | snippet_bufsize | 碎片代码缓冲区大小 |
[out] | snippet_size | 碎片代码大小 |
SS_UINT32 SSAPI get_snippet_seed | ( | IN MASTER_HANDLE | master, |
IN SS_UINT32 | license_id, | ||
OUT SS_BYTE | snippet_seed[SNIPPET_SEED_LENGTH] | ||
) |
获取碎片代码种子(开发者不必关心)
[in] | master | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | license_id | 许可ID |
[out] | snippet_seed | 碎片代码种子(32 字节) |
SS_UINT32 SSAPI license_encrypt | ( | IN MASTER_HANDLE | master, |
IN SS_UINT32 | license_id, | ||
IN const SS_BYTE * | plain, | ||
IN SS_UINT32 | len, | ||
OUT SS_BYTE * | cipher | ||
) |
使用开发锁进行许可加密(开发者不必关心)
[in] | master | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | license_id | 许可ID |
[in] | plain | 明文 |
[in] | len | 加密长度(必须是16的倍数) |
[out] | cipher | 密文 |
SS_UINT32 SSAPI master_close | ( | IN MASTER_HANDLE | device_handle) |
SS_UINT32 SSAPI master_get_ca_cert | ( | IN MASTER_HANDLE | device_handle, |
IN SS_BYTE | ca_type, | ||
OUT SS_BYTE * | ca_cert, | ||
IN SS_UINT32 | cert_bufsize, | ||
OUT SS_UINT32 * | cert_size | ||
) |
通过证书类型,获取开发锁 CA 证书
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | ca_type | 证书类型,详见 PKI_CA_TYPE_DEVELOPER 等 |
[out] | ca_cert | 存放锁CA证书的缓冲区 |
[in] | cert_bufsize | 缓冲区大小 |
[out] | cert_size | CA 证书大小 |
SS_UINT32 SSAPI master_get_ca_cert_ex | ( | IN MASTER_HANDLE | device_handle, |
IN SS_BYTE | ca_type, | ||
IN SS_UINT32 | root_index, | ||
OUT SS_BYTE * | ca_cert, | ||
IN SS_UINT32 | cert_bufsize, | ||
OUT SS_UINT32 * | cert_size | ||
) |
通过证书类型,获取开发锁 CA 证书
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | ca_type | 证书类型,详见 PKI_CA_TYPE_DEVELOPER 等 |
[in] | root_index | 根证书索引序号 |
[out] | ca_cert | 存放锁CA证书的缓冲区 |
[in] | cert_bufsize | 缓冲区大小 |
[out] | cert_size | CA 证书大小 |
SS_UINT32 SSAPI master_get_developer_ca | ( | IN MASTER_HANDLE | device_handle, |
OUT SS_BYTE * | developer_ca, | ||
IN SS_UINT32 | ca_bufsize, | ||
OUT SS_UINT32 * | ca_size | ||
) |
获取开发锁开发者 CA 证书
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[out] | developer_ca | 存放开发者 CA 证书的缓冲区 |
[in] | ca_bufsize | 缓冲区大小 |
[out] | ca_size | 开发者 CA 证书大小 |
SS_UINT32 SSAPI master_get_developer_cert | ( | IN MASTER_HANDLE | device_handle, |
OUT SS_BYTE * | developer_cert, | ||
IN SS_UINT32 | cert_bufsize, | ||
OUT SS_UINT32 * | cert_size | ||
) |
获取开发锁开发者证书
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[out] | developer_cert | 存放开发者证书的缓冲区 |
[in] | cert_bufsize | 缓冲区大小 |
[out] | cert_size | 开发者证书大小 |
SS_UINT32 SSAPI master_get_developer_cert_ex | ( | IN MASTER_HANDLE | device_handle, |
IN SS_UINT32 | root_index, | ||
OUT SS_BYTE * | developer_cert, | ||
IN SS_UINT32 | cert_bufsize, | ||
OUT SS_UINT32 * | cert_size | ||
) |
根据根证书索引,获取开发锁开发者证书(扩展接口)
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | root_index | 根证书索引序号 |
[out] | developer_cert | 存放开发者证书的缓冲区 |
[in] | cert_bufsize | 缓冲区大小 |
[out] | cert_size | 开发者证书大小 |
SS_UINT32 SSAPI master_get_developer_id | ( | IN MASTER_HANDLE | device_handle, |
OUT SS_BYTE * | developer_id | ||
) |
获取开发锁开发商ID
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[out] | developer_id | 开发商ID |
SS_UINT32 SSAPI master_get_device_ca | ( | IN MASTER_HANDLE | device_handle, |
OUT SS_BYTE * | device_ca, | ||
IN SS_UINT32 | device_bufsize, | ||
OUT SS_UINT32 * | device_size | ||
) |
获取开发锁设备 CA 证书
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[out] | device_ca | 存放设备 CA 证书的缓冲区 |
[in] | device_bufsize | 缓冲区大小 |
[out] | device_size | 设备 CA 证书大小 |
SS_UINT32 SSAPI master_get_info | ( | IN MASTER_HANDLE | device_handle, |
IN SS_BYTE | type, | ||
OUT char ** | info | ||
) |
获取开发锁设备信息
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | type | 获取信息类型,当前只能 = 1 |
[out] | info | 获取到的信息,json结构 |
SS_UINT32 SSAPI master_get_root_ca | ( | IN MASTER_HANDLE | device_handle, |
OUT SS_BYTE * | root_ca, | ||
IN SS_UINT32 | root_bufsize, | ||
OUT SS_UINT32 * | root_size | ||
) |
获取开发锁 Virbox Root CA 证书
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[out] | root_ca | 存放开发锁 Virbox Root CA 证书的缓冲区 |
[in] | root_bufsize | 缓冲区大小 |
[out] | root_size | 开发锁 Virbox Root CA 证书大小 |
SS_UINT32 SSAPI master_get_root_count | ( | IN MASTER_HANDLE | device_handle, |
OUT SS_UINT32 * | count | ||
) |
获取开发商锁内所有的根证书数量
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[out] | count | 根证书数量 |
SS_UINT32 SSAPI master_get_seedkey | ( | IN MASTER_HANDLE | device_handle, |
OUT SS_BYTE * | key, | ||
IN SS_UINT32 | max_key_len, | ||
OUT SS_UINT32 * | key_len | ||
) |
获取签发设备的种子码密钥(种子码公钥)
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[out] | key | 缓冲区 |
[in] | max_key_len | 缓冲区长度 |
[out] | key_len | 证书的长度 |
SS_UINT32 SSAPI master_heap_free | ( | IN void * | buf) |
SS_UINT32 SSAPI master_open | ( | OUT MASTER_HANDLE * | device_handle) |
打开签发设备(开发锁)
[out] | device_handle | 开发锁设备句柄 |
SS_UINT32 SSAPI master_pin_change | ( | IN MASTER_HANDLE | device_handle, |
IN SS_BYTE | pin_index, | ||
IN SS_BYTE * | old_pin, | ||
IN SS_UINT32 | old_pin_len, | ||
IN SS_BYTE * | new_pin, | ||
IN SS_UINT32 | new_pin_len, | ||
IN SS_BYTE * | hash | ||
) |
修改开发商开发锁 PIN 码
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | pin_index | PIN 码所在的索引位置,目前只支持 1 个 PIN 码,当前为 0 |
[in] | old_pin | 当前使用中的 PIN 码 |
[in] | old_pin_len | 当前使用的 PIN 码长度 |
[in] | new_pin | 新 PIN 码 |
[in] | new_pin_len | 新 PIN 码长度 |
[in] | hash | 新 PIN 码的 sha256 hash 结果,用于内部校验 |
SS_UINT32 SSAPI master_pin_deauth | ( | MASTER_HANDLE | device_handle) |
清除 PIN 权限
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
SS_UINT32 SSAPI master_pin_disable | ( | MASTER_HANDLE | device_handle) |
禁用开发锁 PIN 码
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
SS_UINT32 SSAPI master_pin_enable | ( | MASTER_HANDLE | device_handle) |
SS_UINT32 SSAPI master_pin_is_verified | ( | MASTER_HANDLE | device_handle) |
确认 PIN 码是否验证通过
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
SS_UINT32 SSAPI master_pin_verify | ( | IN MASTER_HANDLE | device_handle, |
IN SS_BYTE | pin_index, | ||
IN SS_BYTE * | pin, | ||
IN SS_UINT32 | pin_len | ||
) |
验证开发锁 PIN 码
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | pin_index | PIN 码所在的索引位置,目前只支持 1 个 PIN 码,当前为 0 |
[in] | pin | 当前使用中的 PIN 码 |
[in] | pin_len | 当前使用的 PIN 码长度 |
SS_UINT32 SSAPI master_verify_ca | ( | IN MASTER_HANDLE | device_handle, |
IN SS_BOOL | store, | ||
IN SS_BYTE | ca_type, | ||
IN SS_BYTE * | ca_cert, | ||
IN SS_UINT32 | ca_len | ||
) |
验证开发锁 CA 证书
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | store | 验证时,是否将证书存储在锁内。TRUE,存储;FALSE,不存储。 |
[in] | ca_type | 证书类型,详见 PKI_CA_TYPE_DEVELOPER 等 |
[in] | ca_cert | 证书缓冲区 |
[in] | ca_len | 证书长度 |
SS_UINT32 SSAPI master_verify_ca_ex | ( | IN MASTER_HANDLE | device_handle, |
IN SS_BOOL | store, | ||
IN SS_BYTE | ca_type, | ||
IN SS_UINT32 | root_index, | ||
IN SS_BYTE * | ca_cert, | ||
IN SS_UINT32 | ca_len | ||
) |
验证开发锁CA证书(扩展接口)
[in] | device_handle | 开发锁设备句柄,通过调用 master_open 得到 |
[in] | store | 验证时,是否将证书存储在锁内。TRUE,存储;FALSE,不存储。 |
[in] | ca_type | 证书类型,详见 PKI_CA_TYPE_DEVELOPER 等 |
[in] | root_index | 根证书序号 |
[in] | ca_cert | 证书缓冲区 |
[in] | ca_len | 证书长度 |