无卡DRM终端SDK接口使用手册.doc

上传人:cl****1 文档编号:549294684 上传时间:2023-05-15 格式:DOC 页数:22 大小:148KB
返回 下载 相关 举报
无卡DRM终端SDK接口使用手册.doc_第1页
第1页 / 共22页
无卡DRM终端SDK接口使用手册.doc_第2页
第2页 / 共22页
无卡DRM终端SDK接口使用手册.doc_第3页
第3页 / 共22页
无卡DRM终端SDK接口使用手册.doc_第4页
第4页 / 共22页
无卡DRM终端SDK接口使用手册.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《无卡DRM终端SDK接口使用手册.doc》由会员分享,可在线阅读,更多相关《无卡DRM终端SDK接口使用手册.doc(22页珍藏版)》请在金锄头文库上搜索。

1、1.1.1航天数字传媒无卡DRM终端SDK接口使用手册项目经理:赵海丽合作厂家:文档作者:杨永版本号:V1.2审 核:日 期:2015-03-12文档说明本文档详细描述了无卡DRM客户端SDK接口,旨在双方顺利实现集成提供指导和依据。本文档仅限于在航天数字传媒有限公司及授权的终端厂商内部公开,任何人不得擅自向外公开。任何其他人员因特殊需要得到此文档之后,不得擅自传递,否则将追究法律责任。本文档的解释权属于航天数字传媒有限公司。历史记录序号变更(+/-)说明作者版本号日期审核1新建杨永V0.12014.06.302修改杨永V0.22014.11.233修改成纯互联网环境版本杨永V1.02015.

2、03.12注:初始版本号定为0.1,审核通过基线版本为1.0,可进行归档。1.0及以上版本修改需要进行审批。目 录文档说明3历史记录3目录41接口形式52使用环境要求53数据类型约定54接口说明65相关数据说明186错误码定义197时间格式说明208附录211.接口形式本SDK采用C语言开发,SDK以SO库以及头文件的形式向外发布,厂商需要加载SO库并实现OEM部分接口,方可调用DBS接口实现无卡DRM客户端功能。2.使用环境要求目前SDK使用环境为linux平台与windows平台。移植终端自身为linux系统,终端厂商需要提供交叉编译环境,由我方交叉编译之后提供库以及对应头文件。移植终端为

3、android平台,我方默认采用最新android ndk编译,终端厂商也可以提供交叉编译环境,由我方编译后提供库文件以及头文件。移植终端为windows平台,我方直接提供库文件以及头文件。我方提供的SDK不论什么平台都需要openssl的支持,目前使用0.9.8版本。3.数据类型约定UINT88位无符号整型数据UINT16 16位无符号整型数据UINT32 32位无符号整形数据UINT64 64位无符号整形数据CHAR8位字符型数据INT1616位有符号整形数据INT3232位有符号整形数据INT6464位有符号整形数据VOID32位空类型4.接口说明以下接口为OEM接口,厂商必须实现。1.

4、 获取设备ID【原型】INT32OemGetSN(VOID * vOem, UINT8 * sn)【功能要求】获取设备ID号,该号码为设备出厂时烧写序列号,作为设备的唯一标志,该序列为6字节,每个字节取值范围均为0-255。在SDK库调用该接口之前,sn内存已经分配,函数实现只需找到设备的ID,拷贝给sn为起始地址的连续6个字节即可。如果码值过长或过短,请自行截断,或者补0。该接口必须实现,不同的设备调用该函数返回的值必须不同。【参数】vOem - 输入参数,OEM厂商自行定义的结构体,见相关数据说明章节。SN - 输出参数,SN长度固定为16字节,内存已经分配,只需对其赋值。【返回值】返回值

5、整数类型,如果返回0代表成功,非0代表失败。2. 打开主加密文件【原型】INT32 OemOpen(VOID * vOem)【功能要求】打开主加密文件。【参数】vOem - 输入参数,OEM厂商自行定义的结构体,见相关数据说明章节。【返回值】返回值整数类型,成功返回0,失败返回非0。 3. 读主加密文件【原型】INT32 OemRead(VOID * vOem, UINT8 * pbBuf, INT32 iBufLen)【功能要求】读取主加密文件内容。【参数】vOem - 输入参数,OEM厂商自行定义的结构体,见相关数据说明章节。pbBuf - 输出参数,读取文件数据存放的首地址。iBufLe

6、n - 输入参数,要读取的文件数据的长度。【返回值】返回值整数类型,返回实际读取数据数据长度。 4. 设置主加密文件指针偏移位置【原型】INT64 OemSeek(VOID * vOem , INT64 lPos , INT32 FromWhere)【功能要求】偏移主加密文件的文件指针。【参数】vOem - 输入参数,OEM厂商自行定义的结构体,见相关数据说明章节。lPos - 输入参数,加密媒体文件指针偏移量。FromWhere - 输入参数,与标准C语言库中的fseek最后一个参数功能一样,取三种值,分别为0,1,2含义分别为文件开头、文件当前、文件结尾位置。【返回值】返回值整数类型,成功

7、更改偏移指针返回当前文件指针位置,失败返回非O。 5. 读主加密文件大小【原型】INT64 OemSize(VOID * vOem);【功能要求】返回主加密文件的大小【参数】vOem - 输入参数,OEM厂商自行定义的结构体,见相关数据说明章节。【返回值】返回值整数类型,成功返回加密文件实际大小,失败返回小于等于0以下接口为DBS接口,调用如下接口,方可实现DRM功能。6. DRM初始化【原型】INT32 DbsInit(UINT8 vDbs2048, VOID * vOem)【功能】主加密文件的初始化操作,必须调用完毕该接口,才能调用其他DBS接口。特别说明:在调用该接口时,OEM数据中关于

8、如何读取加密主文件的参数可以不用设置,因为初始化操作不回去操作某个特定的加密文件,而是去读取一些DRM自己的数据、机顶盒相关参数、设置过滤器等。【参数】vDbs - 输入参数,无卡DRM运行所需要的数据存储位置,移植端不需要关注其具体结构,给其分配2048字节数组即可,此空间由移植方申请。 vOem - 输入参数,OEM厂商自行定义的结构体,见相关数据说明章节。【返回值】见错误码定义章节7. 主加密文件打开【原型】INT32 DbsOpen(UINT8 vDbs2048)【功能】主加密文件打开,该函数调用成功方可调用 DbsRead DbsSeek DbsPos DbsSize 函数通过调用该

9、函数,可以判定当前加密文件授权状态,根据返回值判定。只有在返回值大于等于0的时候,才能去掉用下方所有接口,如果返回负值,请查表定位错误,解决错误后再重新调用。【参数】vDbs - 输入参数,无卡DRM运行所需要的数据存储位置,移植端不需要关注其具体结构,给其分配2048字节数组即可,此空间由移植方申请。 【返回值】见错误码定义章节8. 获取解密后文件目前指针位置【原型】INT64 DbsPos(UINT8 vDbs2048);【功能】获取解密后的清流文件的文件偏移指针位置【参数】vDbs - 输入参数,无卡DRM运行所需要的数据存储位置。【返回值】见错误码定义章节9. 读解密后文件数据【原型】

10、INT32 DbsRead(UINT8 vDbs2048, UINT8 * pbBuf, INT32 iBufLen)【功能】读取解密后的主加密文件数据。(读取的数据已为清流) 【参数】vDbs - 输入参数,无卡DRM运行所需要的数据存储位置。pbBuf - 输出参数,读到的数据的首地址。iBufLen - 输入参数,读取数据的长度。【返回值】见错误码定义章节10. 设置解密后文件偏移指针【原型】INT64 DbsSeek(UINT8 vDbs2048, INT64 lPos , INT32 FromWhere) 【功能】设置解密后的主加密文件指针偏移位置【参数】vDbs - 输入参数,无卡

11、DRM运行所需要的数据存储位置。(调用init函数时,分配的内存区域)lPos - 输入参数,文件偏移指针数据。FromWhere - 输入参数,与标准C语言库中的fseek最后一个参数功能一样,取三种值,分别为0,1,2含义分别为文件开头、文件当前、文件结尾位置。【返回值】目前解密后的文件指针真实位置,=0则见错误码章节。11. 获取解密后文件大小【原型】INT64 DbsSize(UINT8 vDbs2048) 【功能】获取解密后的文件实际大小【参数】vDbs - 输入参数,无卡DRM运行所需要的数据存储位置。(调用init函数时,分配的内存区域)【返回值】返回解密后文件的大小,如有错误见

12、错误码定义章节12. 获取当前打开的主加密文件授权详细信息【原型】INT32DbsGetMediaAuthInfo(UINT8 vDbs2048 , DBSAuthInfo *Info);【功能】获取当前正在解密的文件的授权信息,例如影片名、影片编号CID,开始时间、截止时间、剩余次数等【参数】vDbs - 输入参数,无卡DRM运行所需要的数据存储位置。(调用init函数时,分配的内存区域)Info - 输出参数,该结构定义见SDK配套的头文件中DBSAuthInfo结构体定义。【返回值】见错误码定义章节13. 获取设备有关信息【原型】INT32DbsGetDeviceInfo (VOID * dbs , DBSDeviceInfo * deviceInfo);【功能】获取设备基本信息【参数】vDbs - 输入参数,无卡DRM运行所需要的数据存储位置。(调用init函数时,分配的内存区域)deviceInfo - 输出参数,返回设备基本信息,主要有DRM版本信息、设备ID等【返回值】见错误码定义章节5.相关数据说明接口中主要涉及要两点数据需要详细解释1. OEM数据。在OEM起始的接口中,第一个参数都是VOID * OEM类型,此数据类型是需要移植方自己定义,以结构体指针形式存在,结构体中的内容不作要求,但会做出建议。此数据结构库自身不会做任何修改,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 研究报告 > 教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号