Android HDCP開發小結

2021-07-26 19:28:17 字數 1102 閱讀 4468

hdcp(high -bandwidth digital content protection) ,用以保護數字內容。

hdcp在2.0以前的版本都主要是配合hdmi等需要有線連線的裝置的,隨著網路的發展,數字內容的保護需求明顯增加,為了新的應用的需要,hdcp2.0出現了,它只是需要tcp/ip連線即可,這樣hdcp就可以應用在更多的場合。

hdcp由

sansasecurity

授權,拿到庫和key檔案後匯入專案即可,因為是批量授權,key可以通用。

android 4.2 在wifi display下新增了hdcp的介面,開發者若需要支援hdcp,則需要按照介面生成名為libstagefright_hdcp.的系統動態庫。然後wifidisplay 會透過mediaplayerservice提供的介面來訪問。

其中初始化,包括ake,lc,ske的部分呼叫介面initasync ,然後是資料的加解密介面,及結束hdcp的介面。

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)的交換。

加解密使用aes演算法。

android HDCP移植開發小結

hdcp high bandwidth digital content protection 用以保護數字內容。hdcp在2.0以前的版本都主要是配合hdmi等需要有線連線的裝置的,隨著網路的發展,數字內容的保護需求明顯增加,為了新的應用的需要,hdcp2.0出現了,它只是需要tcp ip連線即可,...

Zookeeper開發小結

一.例項化zookeeper與自動重連 樣例 public class zkclient sessiontimeout integer.parseint config.getproperty zk.sessiontimeout 1 connectzk core method,啟動zk服務 本例項基於...

開發步驟小結

1.建立svn專案,以前是先建專案再匯入,發現這樣並不好 2.建立工作區專案,此處可以借助 生成工具 3.建立domain model,先不要寫完整的model 需要的是class name資訊 4.建立inte ce,如service inte ce,dao inte ce,此處也可借助 生成工具...