android HDCP移植开发小结
来源:互联网 发布:视力训练软件 编辑:程序博客网 时间:2024/05/06 02:18
HDCP(High -bandwidth Digital Content Protection) ,用以保护数字内容。
HDCP在2.0以前的版本都主要是配合HDMI等需要有线连接的设备的,随着网络的发展,数字内容的保护需求明显增加,为了新的应用的需要,HDCP2.0出现了,它只是需要TCP/IP连接即可,这样HDCP就可以应用在更多的场合。
Android 4.2 在WIFI Display下添加了HDCP的接口,开发者若需要支持HDCP,则需要按照接口生成名为libstagefright_hdcp.的系统动态库。然后WifiDisplay 会透过mediaplayerservice提供的接口来访问。
其中初始化,包括AKE,LC,SKE的部分调用接口initAsync ,然后是数据的加解密接口,及结束HDCP的接口。
HDCP由SansaSecurity授权,获得版权后,将public key certificate导入项目即可,因为是批量授权,所以可以项目通用。
HDCP设备间的连接的建立, 需要通过复杂的验证过程,其流程大致如图:
1、建立tcp的套接字,等待source端来connect。端口号在WiFiDisplay的M3阶段透过字串 "wfd_content_protection: HDCP2.0 port=35000\r\n"告诉了source端。 当两端的tcp连接成功创建后,等待source端的验证动作。
2、HDCP设备相互验证分为三步进行,AKE(Authentication and Key Exchange)是验证的第一步。它主要的操作就是source端来验证HDCP Receiver的public key certificate(包括Receiver ID 和RSA public key)。它们之间会交换Km。
3、LC(Locality Check ),当在AKE阶段,sink端计算出的H‘和source端计算的H相等时,source端会继续下部验证,即LC,否则会终止TCP连接。LC通过一个消息对的时间来确定是不是两个相对较近的设备在连接,如果一个消息对的时间超过了7ms,则表示locality check 失败。
4、SKE(Session Key Exchange),在成功完成了前几步之后,source端和sink端就可以开始session key(ks)的交换。
5、ks成功后,source就完成了传输音视频数据传输前的所有准备,传输音视频数据时,source端会拿Ks加密,sink端会拿Ks解密。
加解密使用AES算法。
- android HDCP移植开发小结
- Android HDCP开发小结
- Android HDCP
- HDCP
- HDCP
- HDCP 6410 移植 (续前文)
- Android日历移植小结
- 基于PXA255部分Linux驱动及Android移植开发小结
- 开发板移植步骤小结
- 移植Android开发过程
- linux-android移植开发
- Android开发小结
- Android开发小结
- Android 开发小结01
- android 应用程序开发小结
- Android开发通讯录小结
- Android 开发学习小结
- Android开发小结1
- DTLS主要特性概述和实现分析
- Android屏幕适配解决方案
- 761C Dasha and Passwordtia
- java 运行cmd命令(执行多行)
- sql语句中删除表数据drop、truncate和delete的用法
- android HDCP移植开发小结
- 函数只运行一次
- Struts2(一)
- 地下市场金融牌照疯狂买卖:全牌照可以卖十几个亿
- RSA加密时OSStatus状态-34018
- java--认识
- 桥基站设备通信协议-AIS
- 写一个Perl包来负责流程调用软件
- 彻底解决maven下载慢的问题